Frequenzerzeugung

 

Auf jedem der 6 Timerkanäle kann ein Rechtecksignal erzeugt werden. Im folgenden Beispiel wird ein 50Hz Signal erzeugt, das auf den Pin TIMER0-A und TIMER0-B (siehe Pinzuordnung) ausgegeben wird. Zusätzlich wird ein Interrupt ausgelöst. Der Vorteiler TIM_128 bestimmt eine Tickdauer von 1,939µs (= 128 / 66.000.000 Mhz). Durch 5157 * 1,939µs = 10ms ergeben sich 100 Flankenwechsel pro Sekunde = 50Hz.

 

Beispiel

 

word cnt;
 
void irq(void)
{
    cnt++;
    Irq_GetCount(INT_TIMER0);
}
 
void main(void)
{
    cnt= 0;
    Irq_SetVect(INT_TIMER0, irq);
    Timer_Set(0, TIM_128, 5157, TIMFLG_IRQ|TIMFLG_PINA|TIMFLG_PINB);
    while(1);
}