Add missing header.
[bertos.git] / drv / timer_avr.h
index 7a68b61598b1add9b917087192961c46a53e8eaa..96be9da6610394cc026654b00669e526db9a81f7 100755 (executable)
 
 /*
  * $Log$
+ * Revision 1.13  2004/08/24 14:30:11  bernie
+ * Use new-style config macros for drv/timer.c
+ *
+ * Revision 1.12  2004/08/10 06:59:45  bernie
+ * CONFIG_TIMER_STROBE: Define no-op default macros.
+ *
+ * Revision 1.11  2004/08/03 15:53:17  aleph
+ * Fix spacing
+ *
  * Revision 1.10  2004/08/02 20:20:29  aleph
  * Merge from project_ks
  *
 #endif
 
 
+/*!
+ * Values for CONFIG_TIMER.
+ *
+ * Select which hardware timer interrupt to use for system clock and softtimers.
+ * \note The timer 1 overflow mode set the timer as a 24 kHz PWM.
+ */
+#define TIMER_ON_OUTPUT_COMPARE0  1
+#define TIMER_ON_OVERFLOW1        2
+#define TIMER_ON_OUTPUT_COMPARE2  3
+
+
+/*!
+ * \def CONFIG_TIMER_STROBE
+ *
+ * This is a debug facility that can be used to
+ * monitor timer interrupt activity on an external pin.
+ *
+ * To use strobes, redefine the macros TIMER_STROBE_ON,
+ * TIMER_STROBE_OFF and TIMER_STROBE_INIT and set
+ * CONFIG_TIMER_STROBE to 1.
+ */
+#ifndef CONFIG_TIMER_STROBE
+       #define TIMER_STROBE_ON    do {/*nop*/} while(0)
+       #define TIMER_STROBE_OFF   do {/*nop*/} while(0)
+       #define TIMER_STROBE_INIT  do {/*nop*/} while(0)
+#endif
+
+
 /* Not needed, IRQ timer flag cleared automatically */
 #define timer_hw_irq() do {} while (0)
 
 #define OCR_DIVISOR  (CLOCK_FREQ / TIMER_PRESCALER / TICKS_PER_SEC - 1) /* 191 */
 
 /*! HW dependent timer initialization  */
-#if defined(CONFIG_TIMER_ON_TIMER0)
+#if (CONFIG_TIMER == TIMER_ON_OUTPUT_COMPARE0)
 
        //! Type of time expressed in ticks of the hardware high-precision timer
        typedef uint8_t hptime_t;
                return TCNT0;
        }
 
-#elif defined(CONFIG_TIMER_ON_TIMER1_OVERFLOW)
+#elif (CONFIG_TIMER == TIMER_ON_OVERFLOW1)
 
        //! Type of time expressed in ticks of the hardware high precision timer
        typedef uint16_t hptime_t;
                return TCNT1;
        }
 
-#elif defined(CONFIG_TIMER_ON_TIMER2)
+#elif (CONFIG_TIMER == TIMER_ON_OUTPUT_COMPARE2)
 
        //! Type of time expressed in ticks of the hardware high precision timer
        typedef uint8_t hptime_t;
                TIFR = BV(OCF2) | BV(TOV2);
 
                /* Setup Timer/Counter interrupt */
-               TCCR2 = BV(WGM21) 
+               TCCR2 = BV(WGM21)
                        #if TIMER_PRESCALER == 64
                                | BV(CS21) | BV(CS20)
                        #else
        }
 
 #else
-       #error Choose witch timer to use with CONFIG_TIMER_ON_TIMERx
-#endif /* CONFIG_TIMER_ON_TIMERx */
+       #error Unimplemented value for CONFIG_TIMER
+#endif /* CONFIG_TIMER */
 
 
-#if defined(CONFIG_TIMER_ON_TIMER1_OVERFLOW)
+#if (CONFIG_TIMER == TIMER_ON_OVERFLOW1)
 
        #define DEFINE_TIMER_ISR        \
                static void timer_handler(void)
        #endif
        }
 
-#elif defined (CONFIG_TIMER_ON_TIMER0)
+#elif (CONFIG_TIMER == TIMER_ON_OUTPUT_COMPARE0)
 
        #define DEFINE_TIMER_ISR        \
                SIGNAL(SIG_OUTPUT_COMPARE0)
 
-#elif defined(CONFIG_TIMER_ON_TIMER2)
+#elif (CONFIG_TIMER == TIMER_ON_OUTPUT_COMPARE2)
 
        #define DEFINE_TIMER_ISR        \
                SIGNAL(SIG_OUTPUT_COMPARE2)
 
 #else
-       #error Choose witch timer to use with CONFIG_TIMER_ON_TIMERx
-#endif /* CONFIG_TIMER_ON_TIMERx */
+       #error Unimplemented value for CONFIG_TIMER
+#endif /* CONFIG_TIMER */
 
 #endif /* DRV_TIMER_AVR_H */