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

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
06/05/10 14:23
Modified:
  06/05/10 14:25

Read: times


 
#176422 - Put the compiler to work...
Responding to: ???'s previous message
Why not document your reload calculation formula for all time, by including it in your source code? Maybe get the compiler to do the calculation work for you, each time you change target crystal and oscillator frequencies?

// In your module's associated header file...
#define CRYSTAL_FREQ         11059200
#define STATES_PER_CYCLE     12u
#define PERIPH_CLOCK_FREQ    CRYSTAL_FREQ / STATES_PER_CYCLE 
#define OSC_FREQUENCY        8000u
#define PERIOD_COUNTS        PERIPH_CLOCK_FREQ / OSC_FREQUENCY 
#define T0_OVERFLOW          65535u
#define RELOAD               (unsigned int)(T0_OVERFLOW - PERIOD_COUNTS)

// In your timer initialisation routine...
TL0 = (unsigned char)(RELOAD & 0xFF); 
TH0 = (unsigned char)(RELOAD >> 8); 

Caveat: This could probably be done better, and is merely a suggested route. It might even be wrong!

Regards,
Murray R. Van Luyn.

List of 16 messages in thread
TopicAuthorDate
80C52 Timer0            01/01/70 00:00      
   where is the EA initialize?            01/01/70 00:00      
      EA initialize            01/01/70 00:00      
         no reason in what you show            01/01/70 00:00      
            TL0 and TH0            01/01/70 00:00      
               Calculations for Timer T0 at 8KHz: have you tried 0xFF8D ???            01/01/70 00:00      
                  correction            01/01/70 00:00      
                     Yeah - 0x8D            01/01/70 00:00      
                        Thanks for that typo, More for 8KHz with 50% duty cycle            01/01/70 00:00      
                           Put the compiler to work...            01/01/70 00:00      
                              fine, but            01/01/70 00:00      
                              T0 overflows at 65535+1, don't overlook this            01/01/70 00:00      
                                 right answer, wrong premise            01/01/70 00:00      
                                    Exact calculations require semantics            01/01/70 00:00      
                                       you are welcome to find out            01/01/70 00:00      
                                 Thanks for the correction...            01/01/70 00:00      

Back to Subject List