projects
/
bertos.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge from kseries
[bertos.git]
/
drv
/
timer_avr.h
diff --git
a/drv/timer_avr.h
b/drv/timer_avr.h
index fa652b34908c71132d072d3eca5ab0fb3b8333ee..252e772fa59a64bcc98db4adbc14e816c0275457 100755
(executable)
--- a/
drv/timer_avr.h
+++ b/
drv/timer_avr.h
@@
-1,4
+1,4
@@
-/*
!
+/*
*
* \file
* <!--
* Copyright 2003, 2004, 2005 Develer S.r.l. (http://www.develer.com/)
* \file
* <!--
* Copyright 2003, 2004, 2005 Develer S.r.l. (http://www.develer.com/)
@@
-16,6
+16,12
@@
/*#*
*#* $Log$
/*#*
*#* $Log$
+ *#* Revision 1.29 2007/03/21 11:01:36 batt
+ *#* Add missing support for ATMega1281.
+ *#*
+ *#* Revision 1.28 2006/07/19 12:56:26 bernie
+ *#* Convert to new Doxygen style.
+ *#*
*#* Revision 1.27 2006/05/18 00:38:24 bernie
*#* Use hw_cpu.h instead of ubiquitous hw.h.
*#*
*#* Revision 1.27 2006/05/18 00:38:24 bernie
*#* Use hw_cpu.h instead of ubiquitous hw.h.
*#*
@@
-50,7
+56,7
@@
#include <cfg/compiler.h> /* uint8_t */
#include <hw_cpu.h> /* CLOCK_FREQ */
#include <cfg/compiler.h> /* uint8_t */
#include <hw_cpu.h> /* CLOCK_FREQ */
-/*
!
+/*
*
* \name Values for CONFIG_TIMER.
*
* Select which hardware timer interrupt to use for system clock and softtimers.
* \name Values for CONFIG_TIMER.
*
* Select which hardware timer interrupt to use for system clock and softtimers.
@@
-75,44
+81,48
@@
#define TIMER_TICKS_PER_SEC 1000
#define TIMER_HW_CNT OCR_DIVISOR
#define TIMER_TICKS_PER_SEC 1000
#define TIMER_HW_CNT OCR_DIVISOR
- //
!
Type of time expressed in ticks of the hardware high-precision timer
+ //
/
Type of time expressed in ticks of the hardware high-precision timer
typedef uint8_t hptime_t;
#elif (CONFIG_TIMER == TIMER_ON_OVERFLOW1)
#define TIMER_PRESCALER 1
#define TIMER_HW_BITS 8
typedef uint8_t hptime_t;
#elif (CONFIG_TIMER == TIMER_ON_OVERFLOW1)
#define TIMER_PRESCALER 1
#define TIMER_HW_BITS 8
- /*
!
This value is the maximum in overflow based timers. */
+ /*
*
This value is the maximum in overflow based timers. */
#define TIMER_HW_CNT (1 << TIMER_HW_BITS)
#define DEFINE_TIMER_ISR SIGNAL(SIG_OVERFLOW1)
#define TIMER_TICKS_PER_SEC ((TIMER_HW_HPTICKS_PER_SEC + TIMER_HW_CNT / 2) / TIMER_HW_CNT)
#define TIMER_HW_CNT (1 << TIMER_HW_BITS)
#define DEFINE_TIMER_ISR SIGNAL(SIG_OVERFLOW1)
#define TIMER_TICKS_PER_SEC ((TIMER_HW_HPTICKS_PER_SEC + TIMER_HW_CNT / 2) / TIMER_HW_CNT)
- //
!
Type of time expressed in ticks of the hardware high precision timer
+ //
/
Type of time expressed in ticks of the hardware high precision timer
typedef uint16_t hptime_t;
#elif (CONFIG_TIMER == TIMER_ON_OUTPUT_COMPARE2)
#define TIMER_PRESCALER 64
#define TIMER_HW_BITS 8
typedef uint16_t hptime_t;
#elif (CONFIG_TIMER == TIMER_ON_OUTPUT_COMPARE2)
#define TIMER_PRESCALER 64
#define TIMER_HW_BITS 8
- #define DEFINE_TIMER_ISR SIGNAL(SIG_OUTPUT_COMPARE2)
+ #if CPU_AVR_ATMEGA1281
+ #define DEFINE_TIMER_ISR SIGNAL(SIG_OUTPUT_COMPARE2A)
+ #else
+ #define DEFINE_TIMER_ISR SIGNAL(SIG_OUTPUT_COMPARE2)
+ #endif
#define TIMER_TICKS_PER_SEC 1000
#define TIMER_TICKS_PER_SEC 1000
- /*
!
Value for OCR register in output-compare based timers. */
+ /*
*
Value for OCR register in output-compare based timers. */
#define TIMER_HW_CNT OCR_DIVISOR
#define TIMER_HW_CNT OCR_DIVISOR
- //
!
Type of time expressed in ticks of the hardware high precision timer
+ //
/
Type of time expressed in ticks of the hardware high precision timer
typedef uint8_t hptime_t;
#elif (CONFIG_TIMER == TIMER_ON_OVERFLOW3)
#define TIMER_PRESCALER 1
#define TIMER_HW_BITS 8
typedef uint8_t hptime_t;
#elif (CONFIG_TIMER == TIMER_ON_OVERFLOW3)
#define TIMER_PRESCALER 1
#define TIMER_HW_BITS 8
- /*
!
This value is the maximum in overflow based timers. */
+ /*
*
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 ((TIMER_HW_HPTICKS_PER_SEC + TIMER_HW_CNT / 2) / TIMER_HW_CNT)
#define TIMER_HW_CNT (1 << TIMER_HW_BITS)
#define DEFINE_TIMER_ISR SIGNAL(SIG_OVERFLOW3)
#define TIMER_TICKS_PER_SEC ((TIMER_HW_HPTICKS_PER_SEC + TIMER_HW_CNT / 2) / TIMER_HW_CNT)
- //
!
Type of time expressed in ticks of the hardware high precision timer
+ //
/
Type of time expressed in ticks of the hardware high precision timer
typedef uint16_t hptime_t;
#else
typedef uint16_t hptime_t;
#else
@@
-120,16
+130,16
@@
#endif /* CONFIG_TIMER */
#endif /* CONFIG_TIMER */
-/*
!
Frequency of the hardware high precision timer. */
+/*
*
Frequency of the hardware high precision timer. */
#define TIMER_HW_HPTICKS_PER_SEC ((CLOCK_FREQ + TIMER_PRESCALER / 2) / TIMER_PRESCALER)
#define TIMER_HW_HPTICKS_PER_SEC ((CLOCK_FREQ + TIMER_PRESCALER / 2) / TIMER_PRESCALER)
-/*
!
+/*
*
* System timer: additional division after the prescaler
* 12288000 / 64 / 192 (0..191) = 1 ms
*/
#define OCR_DIVISOR (((CLOCK_FREQ + TIMER_PRESCALER / 2) / TIMER_PRESCALER + TIMER_TICKS_PER_SEC / 2) / TIMER_TICKS_PER_SEC - 1)
* System timer: additional division after the prescaler
* 12288000 / 64 / 192 (0..191) = 1 ms
*/
#define OCR_DIVISOR (((CLOCK_FREQ + TIMER_PRESCALER / 2) / TIMER_PRESCALER + TIMER_TICKS_PER_SEC / 2) / TIMER_TICKS_PER_SEC - 1)
-/*
!
Not needed, IRQ timer flag cleared automatically */
+/*
*
Not needed, IRQ timer flag cleared automatically */
#define timer_hw_irq() do {} while (0)
#define timer_hw_irq() do {} while (0)