DISABLE_INTS/ENABLE_INTS: Convert to IRQ_DISABLE/IRQ_ENABLE.
[bertos.git] / drv / timer_i196.h
1 /*!
2  * \file
3  * <!--
4  * Copyright 2000 Bernardo Innocenti
5  * Copyright 2003,2004 Develer S.r.l. (http://www.develer.com/)
6  * This file is part of DevLib - See devlib/README for information.
7  * -->
8  *
9  * \version $Id$
10  *
11  * \author Bernardo Innocenti <bernie@develer.com>
12  *
13  * \brief Low-level timer module for AVR
14  */
15
16 /*#*
17  *#* $Log$
18  *#* Revision 1.4  2004/12/13 11:51:08  bernie
19  *#* DISABLE_INTS/ENABLE_INTS: Convert to IRQ_DISABLE/IRQ_ENABLE.
20  *#*
21  *#* Revision 1.3  2004/08/25 14:12:08  rasky
22  *#* Aggiornato il comment block dei log RCS
23  *#*
24  *#* Revision 1.2  2004/06/03 11:27:09  bernie
25  *#* Add dual-license information.
26  *#*
27  *#* Revision 1.1  2004/05/23 18:23:30  bernie
28  *#* Import drv/timer module.
29  *#*
30  *#*/
31
32 #ifndef TIMER_I196_H
33 #define TIMER_I196_H
34
35         /*!
36          * Retrigger TIMER2, adjusting the time to account for
37          * the interrupt prologue latency.
38          */
39 #       define TIMER_RETRIGGER (TIMER2 -= TICKS_RATE)
40
41 #       define TIMER_INIT \
42                 TIMER2 = (65535 - TICKS_RATE); \
43                 INT_MASK1 |= INT1F_T2OVF; \
44                 ATOMIC( \
45                         WSR = 1; \
46                         IOC3 |= IOC3F_T2_ENA; \
47                         WSR = 0; \
48                 )
49
50 #define DEFINE_TIMER_ISR \
51         INTERRUPT(0x38) void TM2_OVFL_interrupt(void);  \
52         INTERRUPT(0x38) void TM2_OVFL_interrupt(void)
53
54 #endif /* DRV_TIMER_I196_H */