Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
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!



List of 21 messages in thread
TopicAuthorDate
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      

Back to Subject List