]> git.sur5r.net Git - freertos/blob - Demo/CORTEX_LM3S102_Rowley/hw_include/hw_timer.h
Ethernet working in the Kinetis K60 demo.
[freertos] / Demo / CORTEX_LM3S102_Rowley / hw_include / hw_timer.h
1 //*****************************************************************************\r
2 //\r
3 // hw_timer.h - Defines and macros used when accessing the timer.\r
4 //\r
5 // Copyright (c) 2005,2006 Luminary Micro, Inc.  All rights reserved.\r
6 //\r
7 // Software License Agreement\r
8 //\r
9 // Luminary Micro, Inc. (LMI) is supplying this software for use solely and\r
10 // exclusively on LMI's Stellaris Family of microcontroller products.\r
11 //\r
12 // The software is owned by LMI and/or its suppliers, and is protected under\r
13 // applicable copyright laws.  All rights are reserved.  Any use in violation\r
14 // of the foregoing restrictions may subject the user to criminal sanctions\r
15 // under applicable laws, as well as to civil liability for the breach of the\r
16 // terms and conditions of this license.\r
17 //\r
18 // THIS SOFTWARE IS PROVIDED "AS IS".  NO WARRANTIES, WHETHER EXPRESS, IMPLIED\r
19 // OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF\r
20 // MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.\r
21 // LMI SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR\r
22 // CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.\r
23 //\r
24 // This is part of revision 523 of the Stellaris Driver Library.\r
25 //\r
26 //*****************************************************************************\r
27 \r
28 #ifndef __HW_TIMER_H__\r
29 #define __HW_TIMER_H__\r
30 \r
31 //*****************************************************************************\r
32 //\r
33 // The following define the offsets of the timer registers.\r
34 //\r
35 //*****************************************************************************\r
36 #define TIMER_O_CFG             0x00000000  // Configuration register\r
37 #define TIMER_O_TAMR            0x00000004  // TimerA mode register\r
38 #define TIMER_O_TBMR            0x00000008  // TimerB mode register\r
39 #define TIMER_O_CTL             0x0000000C  // Control register\r
40 #define TIMER_O_IMR             0x00000018  // Interrupt mask register\r
41 #define TIMER_O_RIS             0x0000001C  // Interrupt status register\r
42 #define TIMER_O_MIS             0x00000020  // Masked interrupt status reg.\r
43 #define TIMER_O_ICR             0x00000024  // Interrupt clear register\r
44 #define TIMER_O_TAILR           0x00000028  // TimerA interval load register\r
45 #define TIMER_O_TBILR           0x0000002C  // TimerB interval load register\r
46 #define TIMER_O_TAMATCHR        0x00000030  // TimerA match register\r
47 #define TIMER_O_TBMATCHR        0x00000034  // TimerB match register\r
48 #define TIMER_O_TAPR            0x00000038  // TimerA prescale register\r
49 #define TIMER_O_TBPR            0x0000003C  // TimerB prescale register\r
50 #define TIMER_O_TAPMR           0x00000040  // TimerA prescale match register\r
51 #define TIMER_O_TBPMR           0x00000044  // TimerB prescale match register\r
52 #define TIMER_O_TAR             0x00000048  // TimerA register\r
53 #define TIMER_O_TBR             0x0000004C  // TimerB register\r
54 \r
55 //*****************************************************************************\r
56 //\r
57 // The following define the reset values of the timer registers.\r
58 //\r
59 //*****************************************************************************\r
60 #define TIMER_RV_CFG            0x00000000  // Configuration register RV\r
61 #define TIMER_RV_TAMR           0x00000000  // TimerA mode register RV\r
62 #define TIMER_RV_TBMR           0x00000000  // TimerB mode register RV\r
63 #define TIMER_RV_CTL            0x00000000  // Control register RV\r
64 #define TIMER_RV_IMR            0x00000000  // Interrupt mask register RV\r
65 #define TIMER_RV_RIS            0x00000000  // Interrupt status register RV\r
66 #define TIMER_RV_MIS            0x00000000  // Masked interrupt status reg RV\r
67 #define TIMER_RV_ICR            0x00000000  // Interrupt clear register RV\r
68 #define TIMER_RV_TAILR          0xFFFFFFFF  // TimerA interval load reg RV\r
69 #define TIMER_RV_TBILR          0x0000FFFF  // TimerB interval load reg RV\r
70 #define TIMER_RV_TAMATCHR       0xFFFFFFFF  // TimerA match register RV\r
71 #define TIMER_RV_TBMATCHR       0x0000FFFF  // TimerB match register RV\r
72 #define TIMER_RV_TAPR           0x00000000  // TimerA prescale register RV\r
73 #define TIMER_RV_TBPR           0x00000000  // TimerB prescale register RV\r
74 #define TIMER_RV_TAPMR          0x00000000  // TimerA prescale match reg RV\r
75 #define TIMER_RV_TBPMR          0x00000000  // TimerB prescale match regi RV\r
76 #define TIMER_RV_TAR            0xFFFFFFFF  // TimerA register RV\r
77 #define TIMER_RV_TBR            0x0000FFFF  // TimerB register RV\r
78 \r
79 //*****************************************************************************\r
80 //\r
81 // The following define the bit fields in the TIMER_CFG register.\r
82 //\r
83 //*****************************************************************************\r
84 #define TIMER_CFG_CFG_MSK       0x00000007  // Configuration options mask\r
85 #define TIMER_CFG_16_BIT        0x00000004  // Two 16 bit timers\r
86 #define TIMER_CFG_32_BIT_RTC    0x00000001  // 32 bit RTC\r
87 #define TIMER_CFG_32_BIT_TIMER  0x00000000  // 32 bit timer\r
88 \r
89 //*****************************************************************************\r
90 //\r
91 // The following define the bit fields in the TIMER_TnMR register.\r
92 //\r
93 //*****************************************************************************\r
94 #define TIMER_TNMR_TNAMS        0x00000008  // Alternate mode select\r
95 #define TIMER_TNMR_TNCMR        0x00000004  // Capture mode - count or time\r
96 #define TIMER_TNMR_TNTMR_MSK    0x00000003  // Timer mode mask\r
97 #define TIMER_TNMR_TNTMR_CAP    0x00000003  // Mode - capture\r
98 #define TIMER_TNMR_TNTMR_PERIOD 0x00000002  // Mode - periodic\r
99 #define TIMER_TNMR_TNTMR_1_SHOT 0x00000001  // Mode - one shot\r
100 \r
101 //*****************************************************************************\r
102 //\r
103 // The following define the bit fields in the TIMER_CTL register.\r
104 //\r
105 //*****************************************************************************\r
106 #define TIMER_CTL_TBPWML        0x00004000  // TimerB PWM output level invert\r
107 #define TIMER_CTL_TBEVENT_MSK   0x00000C00  // TimerB event mode mask\r
108 #define TIMER_CTL_TBEVENT_BOTH  0x00000C00  // TimerB event mode - both edges\r
109 #define TIMER_CTL_TBEVENT_NEG   0x00000400  // TimerB event mode - neg edge\r
110 #define TIMER_CTL_TBEVENT_POS   0x00000000  // TimerB event mode - pos edge\r
111 #define TIMER_CTL_TBSTALL       0x00000200  // TimerB stall enable\r
112 #define TIMER_CTL_TBEN          0x00000100  // TimerB enable\r
113 #define TIMER_CTL_TAPWML        0x00000040  // TimerA PWM output level invert\r
114 #define TIMER_CTL_RTCEN         0x00000010  // RTC counter enable\r
115 #define TIMER_CTL_TAEVENT_MSK   0x0000000C  // TimerA event mode mask\r
116 #define TIMER_CTL_TAEVENT_BOTH  0x0000000C  // TimerA event mode - both edges\r
117 #define TIMER_CTL_TAEVENT_NEG   0x00000004  // TimerA event mode - neg edge\r
118 #define TIMER_CTL_TAEVENT_POS   0x00000000  // TimerA event mode - pos edge\r
119 #define TIMER_CTL_TASTALL       0x00000002  // TimerA stall enable\r
120 #define TIMER_CTL_TAEN          0x00000001  // TimerA enable\r
121 \r
122 //*****************************************************************************\r
123 //\r
124 // The following define the bit fields in the TIMER_IMR register.\r
125 //\r
126 //*****************************************************************************\r
127 #define TIMER_IMR_CBEIM         0x00000400  // CaptureB event interrupt mask\r
128 #define TIMER_IMR_CBMIM         0x00000200  // CaptureB match interrupt mask\r
129 #define TIMER_IMR_TBTOIM        0x00000100  // TimerB time out interrupt mask\r
130 #define TIMER_IMR_RTCIM         0x00000008  // RTC interrupt mask\r
131 #define TIMER_IMR_CAEIM         0x00000004  // CaptureA event interrupt mask\r
132 #define TIMER_IMR_CAMIM         0x00000002  // CaptureA match interrupt mask\r
133 #define TIMER_IMR_TATOIM        0x00000001  // TimerA time out interrupt mask\r
134 \r
135 //*****************************************************************************\r
136 //\r
137 // The following define the bit fields in the TIMER_RIS register.\r
138 //\r
139 //*****************************************************************************\r
140 #define TIMER_RIS_CBERIS        0x00000400  // CaptureB event raw int status\r
141 #define TIMER_RIS_CBMRIS        0x00000200  // CaptureB match raw int status\r
142 #define TIMER_RIS_TBTORIS       0x00000100  // TimerB time out raw int status\r
143 #define TIMER_RIS_RTCRIS        0x00000008  // RTC raw int status\r
144 #define TIMER_RIS_CAERIS        0x00000004  // CaptureA event raw int status\r
145 #define TIMER_RIS_CAMRIS        0x00000002  // CaptureA match raw int status\r
146 #define TIMER_RIS_TATORIS       0x00000001  // TimerA time out raw int status\r
147 \r
148 //*****************************************************************************\r
149 //\r
150 // The following define the bit fields in the TIMER_MIS register.\r
151 //\r
152 //*****************************************************************************\r
153 #define TIMER_RIS_CBEMIS        0x00000400  // CaptureB event masked int status\r
154 #define TIMER_RIS_CBMMIS        0x00000200  // CaptureB match masked int status\r
155 #define TIMER_RIS_TBTOMIS       0x00000100  // TimerB time out masked int stat\r
156 #define TIMER_RIS_RTCMIS        0x00000008  // RTC masked int status\r
157 #define TIMER_RIS_CAEMIS        0x00000004  // CaptureA event masked int status\r
158 #define TIMER_RIS_CAMMIS        0x00000002  // CaptureA match masked int status\r
159 #define TIMER_RIS_TATOMIS       0x00000001  // TimerA time out masked int stat\r
160 \r
161 //*****************************************************************************\r
162 //\r
163 // The following define the bit fields in the TIMER_ICR register.\r
164 //\r
165 //*****************************************************************************\r
166 #define TIMER_ICR_CBECINT       0x00000400  // CaptureB event interrupt clear\r
167 #define TIMER_ICR_CBMCINT       0x00000200  // CaptureB match interrupt clear\r
168 #define TIMER_ICR_TBTOCINT      0x00000100  // TimerB time out interrupt clear\r
169 #define TIMER_ICR_RTCCINT       0x00000008  // RTC interrupt clear\r
170 #define TIMER_ICR_CAECINT       0x00000004  // CaptureA event interrupt clear\r
171 #define TIMER_ICR_CAMCINT       0x00000002  // CaptureA match interrupt clear\r
172 #define TIMER_ICR_TATOCINT      0x00000001  // TimerA time out interrupt clear\r
173 \r
174 //*****************************************************************************\r
175 //\r
176 // The following define the bit fields in the TIMER_TAILR register.\r
177 //\r
178 //*****************************************************************************\r
179 #define TIMER_TAILR_TAILRH      0xFFFF0000  // TimerB load val in 32 bit mode\r
180 #define TIMER_TAILR_TAILRL      0x0000FFFF  // TimerA interval load value\r
181 \r
182 //*****************************************************************************\r
183 //\r
184 // The following defines the bit fields in the TIMER_TBILR register.\r
185 //\r
186 //*****************************************************************************\r
187 #define TIMER_TBILR_TBILRL      0x0000FFFF  // TimerB interval load value\r
188 \r
189 //*****************************************************************************\r
190 //\r
191 // The following define the bit fields in the TIMER_TAMATCHR register.\r
192 //\r
193 //*****************************************************************************\r
194 #define TIMER_TAMATCHR_TAMRH    0xFFFF0000  // TimerB match val in 32 bit mode\r
195 #define TIMER_TAMATCHR_TAMRL    0x0000FFFF  // TimerA match value\r
196 \r
197 //*****************************************************************************\r
198 //\r
199 // The following defines the bit fields in the TIMER_TBMATCHR register.\r
200 //\r
201 //*****************************************************************************\r
202 #define TIMER_TBMATCHR_TBMRL    0x0000FFFF  // TimerB match load value\r
203 \r
204 //*****************************************************************************\r
205 //\r
206 // The following defines the bit fields in the TIMER_TnPR register.\r
207 //\r
208 //*****************************************************************************\r
209 #define TIMER_TNPR_TNPSR        0x0000000F  // TimerN prescale value\r
210 \r
211 //*****************************************************************************\r
212 //\r
213 // The following defines the bit fields in the TIMER_TnPMR register.\r
214 //\r
215 //*****************************************************************************\r
216 #define TIMER_TNPMR_TNPSMR      0x0000000F  // TimerN prescale match value\r
217 \r
218 //*****************************************************************************\r
219 //\r
220 // The following define the bit fields in the TIMER_TAR register.\r
221 //\r
222 //*****************************************************************************\r
223 #define TIMER_TAR_TARH          0xFFFF0000  // TimerB val in 32 bit mode\r
224 #define TIMER_TAR_TARL          0x0000FFFF  // TimerA value\r
225 \r
226 //*****************************************************************************\r
227 //\r
228 // The following defines the bit fields in the TIMER_TBR register.\r
229 //\r
230 //*****************************************************************************\r
231 #define TIMER_TBR_TBRL          0x0000FFFF  // TimerB value\r
232 \r
233 #endif // __HW_TIMER_H__\r