??? 12/27/04 11:58 Read: times |
#83921 - Constant = variable Responding to: ???'s previous message |
Had you asked me this question about an assembler routine, then we may be able to compute the delay with some accuracy. In the case of 'c', we don't know what the compiler is doing unless we look at the assembler the compiler generated. In short, we cannot easily answer the question. If you change any of the code in the ISR, the compiler may do something different - stack more registers etc thus adding to the delay. Technically when you refer to 'interrupt latency' it means the time the cpu takes to respond to the interrupt source and vector to the ISR - this is normally between 1-4 cycles depending on what instruction is currently executing. In your case it is the latency along with the number of cycles needed to reload the timer. I would suggest you use timer2 as a auto-reload timer so that the hardware takes care of the timer reloading and thus taking any software delays out of the equation, so we are not concerned with what the compiler does. |
Topic | Author | Date |
Interrupt latency calculation | 01/01/70 00:00 | |
Constant = variable | 01/01/70 00:00 | |
Yes that's correct | 01/01/70 00:00 | |
16-bit auto-reload | 01/01/70 00:00 | |
Performance Analyzer | 01/01/70 00:00 | |
Accuracy, thats the question | 01/01/70 00:00 | |
accuracy | 01/01/70 00:00 | |
A bad order | 01/01/70 00:00 | |
another alternative | 01/01/70 00:00 | |
correction Timer2 not Timer1 | 01/01/70 00:00 | |
Timer2![]() | 01/01/70 00:00 |