| ??? 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 |



