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

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
10/18/06 12:38
Read: times


 
#126646 - it still applies
Responding to: ???'s previous message
I know that everyone says, "Keep your ISRs simple." That is good advice most of the time. In this case, however, you need to step the motor inside the ISR in order to time the motor step pulses precisely.
it still applies. While I totally agree with Russ that you should move the stepping inside the ISR, the rule "short and simple" still applies.

Yes, there are exceptions where you need to do more inside an ISR than you "want to" but there the "short and simple" apply even more.

When you have no other way than to process something inside an ISR you need to CAREFULLY evaluate EVERY step and evaluate if you can make that step less CPU time consuming. I have seen examples where something that "had to" be moved inside an ISR was done so with floats, long divides and what not. that is NOT the way to do it. When processing inmside an ISR (which should be avoided if possible) the rule changes to "as short and as simple as possible" not just "move the code in".

Erik

List of 43 messages in thread
TopicAuthorDate
How to calculate CPU usage?            01/01/70 00:00      
   Generally            01/01/70 00:00      
      multicore '52?            01/01/70 00:00      
   Keil Tools            01/01/70 00:00      
   With what tools ?            01/01/70 00:00      
      Always 100.0%            01/01/70 00:00      
      Or            01/01/70 00:00      
         LED?            01/01/70 00:00      
            A way, Not the Way            01/01/70 00:00      
               spelling and syntax, just as an aside            01/01/70 00:00      
                  Thanks guys.            01/01/70 00:00      
                     What would that tell you?!            01/01/70 00:00      
                        100% is not always 100%            01/01/70 00:00      
                           Idle Not Idle            01/01/70 00:00      
                              We can not see your code            01/01/70 00:00      
                                 60% is not arbitrary            01/01/70 00:00      
                              Run a co-operative tasker!            01/01/70 00:00      
                                 he is doing the right thing, why lead him astray            01/01/70 00:00      
                              WHY            01/01/70 00:00      
                     then this is off-topic            01/01/70 00:00      
                        This isn't the Keil forum, so why ?            01/01/70 00:00      
                  My spelling sucks            01/01/70 00:00      
   Be sure to measure what's important            01/01/70 00:00      
      Good point            01/01/70 00:00      
         ISRs            01/01/70 00:00      
         Protocol?            01/01/70 00:00      
            adding a word            01/01/70 00:00      
            Checksums are not spackle            01/01/70 00:00      
         Try this            01/01/70 00:00      
            clarification            01/01/70 00:00      
               Delay.            01/01/70 00:00      
               Thanks            01/01/70 00:00      
            I'll try this!            01/01/70 00:00      
               Now try this!            01/01/70 00:00      
                  It still qualifies as simple ...            01/01/70 00:00      
                  Stepping inside ISR            01/01/70 00:00      
                     Essential things ...            01/01/70 00:00      
                  it still applies            01/01/70 00:00      
         re; control task            01/01/70 00:00      
            an added word            01/01/70 00:00      
            Buffered UART ?            01/01/70 00:00      
               there is a reason            01/01/70 00:00      
   Done!            01/01/70 00:00      

Back to Subject List