User manual

129
Parameter
irqnr specificeert het type van de interrupt (zie tabel)
vect is de naam van de op te roepen interrupt functie
Opmerking
De zwevende komma- datatype mag ongepast verschijnen maar hij wordt intern als 4 byte waarde
behandeld. Een functie- aanwijzer moet sinds de Mega128 ondersteuning meer dan 18 bit lang zijn.
Tabel interrupt vectoren:
Nr Interrupt naam Beschrijving
0 INT_0 Externe interrupt0
1 INT_1 Externe interrupt1
2 INT_2 Externe interrupt2
3 INT_TIM1CAPT Timer1 Capture
4 INT_TIM1CMPA Timer1 CompareA
5 INT_TIM1CMPB Timer1 CompareB
6 INT_TIM1OVF Timer1 Overflow
7 INT_TIM0COMP Timer0 Compare
8 INT_TIM0OVF Timer0 Overflow
9 INT_ANA_COMP Analoge comparator
10 INT_ADC ADC
11 INT_TIM2COMP Timer2 Compare
12 INT_TIM2OVF Timer2 Overflow
5.4.9.5 IRQ voorbeeld
Voorbeeld: gebruik van interrupt routines
// Timer 2 loopt normaalgesproken in de 10msa maat. In dit
// voorbeeld wordt daarom de variabele cnt elke 10ms met 1 verhoogd
int
cnt;
void ISR(void)
{
int irqcnt;
cnt=cnt+1;
irqcnt=Irq_GetCount(INT_TIM2COMP);
}
void main(void)
{
cnt=0;
Irq_SetVect(INT_TIM2COMP,ISR);
while(true); // Eondeloze lus
}