IRQ Beispiel

 

Beispiel: Verwendung von Interrupt Routinen

 

// INT_100HZ (AVR32Bit) oder Timer 2 (MEGA) laufen normalerweise im 10ms
// Takt. Im Beispiel wird daher die Variable cnt alle 10ms um 1 erhöht
 
int cnt;
 
void ISR(void)
{
    cnt=cnt+1;
#if AVR32
    Irq_GetCount(INT_100HZ);
#else
    Irq_GetCount(INT_TIM2COMP);
#endif
}
 
void main(void)
{
    cnt=0;
 
#if AVR32
    Irq_SetVect(INT_100HZ, ISR);
#else
    Irq_SetVect(INT_TIM2COMP, ISR);
#endif
    while(true);  // Endlosschleife
}