??? 12/14/04 00:09 Read: times |
#83027 - Interrupts - back to basics Responding to: ???'s previous message |
I thought the while(1) loop in the main routine will always execute regardless. I think you need to review the basic principles of how interrupts work - regardless of any spceific processor implementation. A processor (any processor) can only ever be executing a single instruction at any particular time; ergo, if it's executing instructions in your ISR, it can't be executing the while(1) loop in main()! This is precisely why it's called an interrupt - because it interrupts the execution of main. The execution of main() does not resume until the interruption is over. The usual analogy is a phone call: The phone rings; you stop what you're doing, and take the call (this interrupts what you were doing); at the end of the call, you hang up and resume whatever it was that you were doing before you were interrupted . Thus it should be clear that, if your ISR takes 15s to run, main() will be interrupted for 15s - and, therefore, the watchdog will not be kicked for 15s: so of course it will reset the system - that's its job! |
Topic | Author | Date |
LPC932 WDT Triggered by Ext. Int. | 01/01/70 00:00 | |
please carify | 01/01/70 00:00 | |
Here is! | 01/01/70 00:00 | |
How to post code | 01/01/70 00:00 | |
Oh no you don't! | 01/01/70 00:00 | |
Wrong Numbers | 01/01/70 00:00 | |
disable int in ISR is worthless | 01/01/70 00:00 | |
disable int in ISR is worthless | 01/01/70 00:00 | |
wd trigger | 01/01/70 00:00 | |
wdt feeds from main | 01/01/70 00:00 | |
what effect does that have | 01/01/70 00:00 | |
You are Right | 01/01/70 00:00 | |
KISS | 01/01/70 00:00 | |
So! | 01/01/70 00:00 | |
info, please | 01/01/70 00:00 | |
WDT | 01/01/70 00:00 | |
puppy chow | 01/01/70 00:00 | |
Interrupts - back to basics | 01/01/70 00:00 | |
Kick that dog in the interrupt | 01/01/70 00:00 | |
Not generally a good idea | 01/01/70 00:00 | |
Use different method![]() | 01/01/70 00:00 |