| ||||||||
Technical Support Support Resources Product Information | C51: LATENCY OF INTERRUPT SERVICE ROUTINESInformation in this article applies to:
QUESTIONWhat is the interrupt latency of interrupt service routines in C51? ANSWERThere are a number of things that impact how quickly an interrupt is serviced. For example, the following all delay an interrupt:
Assuming that interrupts are enabled and that there is no higher priority interrupt that is executing, a new interrupt is serviced by the Microcontroller immediately. Then, the interrupt service routine is entered. For example, the following C interrupt code:
3 static unsigned counter = 0;
4
5 void ISR (void) interrupt 0 using 1
6 {
7 1 counter++;
8 1 }
generates the following assembly code:
0000 C0E0 PUSH ACC
; SOURCE LINE # 5
; SOURCE LINE # 7
0002 0500 R INC counter+01H
0004 E500 R MOV A,counter+01H
0006 7002 JNZ ?C0006
0008 0500 R INC counter
000A ?C0006:
; SOURCE LINE # 8
000A D0E0 POP ACC
000C 32 RETI
As you can see, there is not a lot of overhead there to retard the performance of your ISRs. SEE ALSO
Last Reviewed: Sunday, January 30, 2005 | |||||||
| ||||||||