- INLINE hptime_t timer_hw_hpread(void)
- {
- return TCNT1;
- }
-
-#elif (CONFIG_TIMER == TIMER_ON_OUTPUT_COMPARE2)
-
- #define TIMER_PRESCALER 64
- #define TIMER_HW_BITS 8
- #if CPU_AVR_ATMEGA1281 || CPU_AVR_ATMEGA168
- #define DEFINE_TIMER_ISR SIGNAL(SIG_OUTPUT_COMPARE2A)
- #else
- #define DEFINE_TIMER_ISR SIGNAL(SIG_OUTPUT_COMPARE2)
- #endif
- #define TIMER_TICKS_PER_SEC 1000
- /** Value for OCR register in output-compare based timers. */
- #define TIMER_HW_CNT OCR_DIVISOR
-
- /// Type of time expressed in ticks of the hardware high precision timer
- typedef uint8_t hptime_t;
- #define SIZEOF_HPTIME_T 1
-
- INLINE hptime_t timer_hw_hpread(void)
- {
- return TCNT2;
- }
-
-#elif (CONFIG_TIMER == TIMER_ON_OVERFLOW3)
-
- #define TIMER_PRESCALER 1
- #define TIMER_HW_BITS 8
- /** This value is the maximum in overflow based timers. */
- #define TIMER_HW_CNT (1 << TIMER_HW_BITS)
- #define DEFINE_TIMER_ISR SIGNAL(SIG_OVERFLOW3)
- #define TIMER_TICKS_PER_SEC DIV_ROUND(TIMER_HW_HPTICKS_PER_SEC, TIMER_HW_CNT)
-
- /// Type of time expressed in ticks of the hardware high precision timer
- typedef uint16_t hptime_t;
- #define SIZEOF_HPTIME_T 2
-
- INLINE hptime_t timer_hw_hpread(void)
- {
- return TCNT3;
- }