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

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
01/07/08 12:55
Read: times


 
Msg Score: +3
 +3 Good Answer/Helpful
#149105 - No, it won't.
Responding to: ???'s previous message
void delay_t(unsigned int Delay)
{
  TH1=0;
  TL1=0;
  while((int(TH1<<8)+int(TL1))<Delay);
  
}


This might appear to work at first, but for certain values of Delay you will start running into nasty atomicity issues, since you are reading TH1 and TL1 for two different points in time.


List of 27 messages in thread
TopicAuthorDate
Number of CPU cycle for 8051 function call            01/01/70 00:00      
   Do it in assembler            01/01/70 00:00      
   Delay functions            01/01/70 00:00      
   A related trick            01/01/70 00:00      
      Offset            01/01/70 00:00      
         Offset            01/01/70 00:00      
            Sure            01/01/70 00:00      
               Over Drive?            01/01/70 00:00      
      a refinement            01/01/70 00:00      
      NOPs are so bad waste of space...            01/01/70 00:00      
         waste of space... waste of time            01/01/70 00:00      
            fixed delay            01/01/70 00:00      
               Variable delay            01/01/70 00:00      
                  determinism of the cache            01/01/70 00:00      
               there are no cache misses in 'linear code'            01/01/70 00:00      
                  I got only ONE cache miss...            01/01/70 00:00      
      Old Keil Thread            01/01/70 00:00      
   What about a Delay like this.            01/01/70 00:00      
      No, it won't.            01/01/70 00:00      
         Ok.            01/01/70 00:00      
         also            01/01/70 00:00      
      Also ...            01/01/70 00:00      
         Actually...            01/01/70 00:00      
            will.            01/01/70 00:00      
               ANSI C            01/01/70 00:00      
                  Keil option: Disable ANSI casts            01/01/70 00:00      
         typo.            01/01/70 00:00      

Back to Subject List