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

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
08/07/06 11:40
Read: times


 
#121787 - The best way:
Responding to: ???'s previous message
Use a free running timer to generate delays:

#include <reg51.h>

// T0 must be running in mode 1


unsigned int read_t0_on_the_fly( void )
{
  unsigned char tl, th;
  th = TH0;
  tl = TL0;
  if( (tl & 0x80) == 0 )
    th = TH0;
  return tl | th << 8;
}


void delay_us( unsigned int t )         // 20 ... 60000us at 12MHz
{
  unsigned int d = read_t0_on_the_fly();

  while( read_t0_on_the_fly() - d < t );
}


Peter


List of 34 messages in thread
TopicAuthorDate
help with c51            01/01/70 00:00      
   Asking the impossible!            01/01/70 00:00      
   killing bad habits from the onset            01/01/70 00:00      
      Delay            01/01/70 00:00      
         Uncommented code is worthless!            01/01/70 00:00      
   No delay            01/01/70 00:00      
      I found this on the web.            01/01/70 00:00      
         Still not \"accurate\"            01/01/70 00:00      
            Sorry aaaaa more Accurate....            01/01/70 00:00      
   but why that weird inconsistency?            01/01/70 00:00      
      why wonder            01/01/70 00:00      
         what's fundamentally wrong on a delay loop?            01/01/70 00:00      
            to keep hacking at fundamentally wrong code serves            01/01/70 00:00      
               argggggggg!!! again.            01/01/70 00:00      
                  HUH?            01/01/70 00:00      
               still does not explain inconsistency            01/01/70 00:00      
                  to Jan            01/01/70 00:00      
               IS it time to put erik out to pasture            01/01/70 00:00      
                  there are many            01/01/70 00:00      
   The best way:            01/01/70 00:00      
   on the subject of timing            01/01/70 00:00      
      The Answer to the OP            01/01/70 00:00      
         Drive-By poster?            01/01/70 00:00      
            Oh how wonderful            01/01/70 00:00      
            Yes Drive-By Poster            01/01/70 00:00      
   char VS int            01/01/70 00:00      
      why do you persist            01/01/70 00:00      
         Learn through your mistakes            01/01/70 00:00      
            yes, I do            01/01/70 00:00      
               inline assembly in C            01/01/70 00:00      
                  sure            01/01/70 00:00      
                  why such figthing ?            01/01/70 00:00      
      write it out            01/01/70 00:00      
      debug            01/01/70 00:00      

Back to Subject List