Rename ser_emul.c to ser_posix.c.
[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 README.devlib 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.5  2005/11/04 16:20:02  bernie
19  *#* Fix reference to README.devlib in header.
20  *#*
21  *#* Revision 1.4  2004/12/13 11:51:08  bernie
22  *#* DISABLE_INTS/ENABLE_INTS: Convert to IRQ_DISABLE/IRQ_ENABLE.
23  *#*
24  *#* Revision 1.3  2004/08/25 14:12:08  rasky
25  *#* Aggiornato il comment block dei log RCS
26  *#*
27  *#* Revision 1.2  2004/06/03 11:27:09  bernie
28  *#* Add dual-license information.
29  *#*
30  *#* Revision 1.1  2004/05/23 18:23:30  bernie
31  *#* Import drv/timer module.
32  *#*
33  *#*/
34
35 #ifndef TIMER_I196_H
36 #define TIMER_I196_H
37
38         /*!
39          * Retrigger TIMER2, adjusting the time to account for
40          * the interrupt prologue latency.
41          */
42 #       define TIMER_RETRIGGER (TIMER2 -= TICKS_RATE)
43
44 #       define TIMER_INIT \
45                 TIMER2 = (65535 - TICKS_RATE); \
46                 INT_MASK1 |= INT1F_T2OVF; \
47                 ATOMIC( \
48                         WSR = 1; \
49                         IOC3 |= IOC3F_T2_ENA; \
50                         WSR = 0; \
51                 )
52
53 #define DEFINE_TIMER_ISR \
54         INTERRUPT(0x38) void TM2_OVFL_interrupt(void);  \
55         INTERRUPT(0x38) void TM2_OVFL_interrupt(void)
56
57 #endif /* DRV_TIMER_I196_H */