Compute value of OCR_DIVISOR from CLOCK_FREQ.
[bertos.git] / drv / timer_avr.h
index 3e8022c1f5c64d67b150c03b749a1b52f6b4ac81..15bf8730f476ce61dc7b11eb45bd1c94c5635fe7 100755 (executable)
 
 /*
  * $Log$
+ * Revision 1.7  2004/07/20 23:49:40  bernie
+ * Compute value of OCR_DIVISOR from CLOCK_FREQ.
+ *
+ * Revision 1.6  2004/07/20 23:48:16  bernie
+ * Finally remove redundant protos.
+ *
  * Revision 1.5  2004/07/18 22:16:35  bernie
  * Add missing header; Prevent warning for project_ks-specific code.
  *
@@ -49,7 +55,7 @@
  * System timer: additional division after the prescaler
  * 12288000 / 64 / 192 (0..191) = 1 ms
  */
-#define OCR_DIVISOR 191
+#define OCR_DIVISOR  (CLOCK_FREQ / TIMER_PRESCALER / TICKS_PER_SEC - 1) /* 191 */
 
 /*! HW dependent timer initialization  */
 #if defined(CONFIG_TIMER_ON_TIMER0)
@@ -82,7 +88,6 @@
        //! Frequency of the hardware high precision timer
        #define TIMER_HW_HPTICKS_PER_SEC  (CLOCK_FREQ / 64)
 
-       INLINE hptime_t timer_hw_hpread(void);
        INLINE hptime_t timer_hw_hpread(void)
        {
                return TCNT0;
        //! Frequency of the hardware high precision timer
        #define TIMER_HW_HPTICKS_PER_SEC  (24000ul * 512)
 
-       INLINE hptime_t timer_hw_hpread(void);
        INLINE hptime_t timer_hw_hpread(void)
        {
                return TCNT1;
        //! Frequency of the hardware high precision timer
        #define TIMER_HW_HPTICKS_PER_SEC  (CLOCK_FREQ / 64)
 
-       INLINE hptime_t timer_hw_hpread(void);
        INLINE hptime_t timer_hw_hpread(void)
        {
                return TCNT2;