]> git.sur5r.net Git - freertos/blob - Demo/CORTEX_LM3S811_KEIL/LuminaryCode/hw_timer.h
Start to re-arrange files to include FreeRTOS+ in main download.
[freertos] / Demo / CORTEX_LM3S811_KEIL / LuminaryCode / 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 816 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_TBOTE         0x00002000  // TimerB output trigger enable\r
108 #define TIMER_CTL_TBEVENT_MSK   0x00000C00  // TimerB event mode mask\r
109 #define TIMER_CTL_TBEVENT_BOTH  0x00000C00  // TimerB event mode - both edges\r
110 #define TIMER_CTL_TBEVENT_NEG   0x00000400  // TimerB event mode - neg edge\r
111 #define TIMER_CTL_TBEVENT_POS   0x00000000  // TimerB event mode - pos edge\r
112 #define TIMER_CTL_TBSTALL       0x00000200  // TimerB stall enable\r
113 #define TIMER_CTL_TBEN          0x00000100  // TimerB enable\r
114 #define TIMER_CTL_TAPWML        0x00000040  // TimerA PWM output level invert\r
115 #define TIMER_CTL_TAOTE         0x00000020  // TimerA output trigger enable\r
116 #define TIMER_CTL_RTCEN         0x00000010  // RTC counter enable\r
117 #define TIMER_CTL_TAEVENT_MSK   0x0000000C  // TimerA event mode mask\r
118 #define TIMER_CTL_TAEVENT_BOTH  0x0000000C  // TimerA event mode - both edges\r
119 #define TIMER_CTL_TAEVENT_NEG   0x00000004  // TimerA event mode - neg edge\r
120 #define TIMER_CTL_TAEVENT_POS   0x00000000  // TimerA event mode - pos edge\r
121 #define TIMER_CTL_TASTALL       0x00000002  // TimerA stall enable\r
122 #define TIMER_CTL_TAEN          0x00000001  // TimerA enable\r
123 \r
124 //*****************************************************************************\r
125 //\r
126 // The following define the bit fields in the TIMER_IMR register.\r
127 //\r
128 //*****************************************************************************\r
129 #define TIMER_IMR_CBEIM         0x00000400  // CaptureB event interrupt mask\r
130 #define TIMER_IMR_CBMIM         0x00000200  // CaptureB match interrupt mask\r
131 #define TIMER_IMR_TBTOIM        0x00000100  // TimerB time out interrupt mask\r
132 #define TIMER_IMR_RTCIM         0x00000008  // RTC interrupt mask\r
133 #define TIMER_IMR_CAEIM         0x00000004  // CaptureA event interrupt mask\r
134 #define TIMER_IMR_CAMIM         0x00000002  // CaptureA match interrupt mask\r
135 #define TIMER_IMR_TATOIM        0x00000001  // TimerA time out interrupt mask\r
136 \r
137 //*****************************************************************************\r
138 //\r
139 // The following define the bit fields in the TIMER_RIS register.\r
140 //\r
141 //*****************************************************************************\r
142 #define TIMER_RIS_CBERIS        0x00000400  // CaptureB event raw int status\r
143 #define TIMER_RIS_CBMRIS        0x00000200  // CaptureB match raw int status\r
144 #define TIMER_RIS_TBTORIS       0x00000100  // TimerB time out raw int status\r
145 #define TIMER_RIS_RTCRIS        0x00000008  // RTC raw int status\r
146 #define TIMER_RIS_CAERIS        0x00000004  // CaptureA event raw int status\r
147 #define TIMER_RIS_CAMRIS        0x00000002  // CaptureA match raw int status\r
148 #define TIMER_RIS_TATORIS       0x00000001  // TimerA time out raw int status\r
149 \r
150 //*****************************************************************************\r
151 //\r
152 // The following define the bit fields in the TIMER_MIS register.\r
153 //\r
154 //*****************************************************************************\r
155 #define TIMER_RIS_CBEMIS        0x00000400  // CaptureB event masked int status\r
156 #define TIMER_RIS_CBMMIS        0x00000200  // CaptureB match masked int status\r
157 #define TIMER_RIS_TBTOMIS       0x00000100  // TimerB time out masked int stat\r
158 #define TIMER_RIS_RTCMIS        0x00000008  // RTC masked int status\r
159 #define TIMER_RIS_CAEMIS        0x00000004  // CaptureA event masked int status\r
160 #define TIMER_RIS_CAMMIS        0x00000002  // CaptureA match masked int status\r
161 #define TIMER_RIS_TATOMIS       0x00000001  // TimerA time out masked int stat\r
162 \r
163 //*****************************************************************************\r
164 //\r
165 // The following define the bit fields in the TIMER_ICR register.\r
166 //\r
167 //*****************************************************************************\r
168 #define TIMER_ICR_CBECINT       0x00000400  // CaptureB event interrupt clear\r
169 #define TIMER_ICR_CBMCINT       0x00000200  // CaptureB match interrupt clear\r
170 #define TIMER_ICR_TBTOCINT      0x00000100  // TimerB time out interrupt clear\r
171 #define TIMER_ICR_RTCCINT       0x00000008  // RTC interrupt clear\r
172 #define TIMER_ICR_CAECINT       0x00000004  // CaptureA event interrupt clear\r
173 #define TIMER_ICR_CAMCINT       0x00000002  // CaptureA match interrupt clear\r
174 #define TIMER_ICR_TATOCINT      0x00000001  // TimerA time out interrupt clear\r
175 \r
176 //*****************************************************************************\r
177 //\r
178 // The following define the bit fields in the TIMER_TAILR register.\r
179 //\r
180 //*****************************************************************************\r
181 #define TIMER_TAILR_TAILRH      0xFFFF0000  // TimerB load val in 32 bit mode\r
182 #define TIMER_TAILR_TAILRL      0x0000FFFF  // TimerA interval load value\r
183 \r
184 //*****************************************************************************\r
185 //\r
186 // The following defines the bit fields in the TIMER_TBILR register.\r
187 //\r
188 //*****************************************************************************\r
189 #define TIMER_TBILR_TBILRL      0x0000FFFF  // TimerB interval load value\r
190 \r
191 //*****************************************************************************\r
192 //\r
193 // The following define the bit fields in the TIMER_TAMATCHR register.\r
194 //\r
195 //*****************************************************************************\r
196 #define TIMER_TAMATCHR_TAMRH    0xFFFF0000  // TimerB match val in 32 bit mode\r
197 #define TIMER_TAMATCHR_TAMRL    0x0000FFFF  // TimerA match value\r
198 \r
199 //*****************************************************************************\r
200 //\r
201 // The following defines the bit fields in the TIMER_TBMATCHR register.\r
202 //\r
203 //*****************************************************************************\r
204 #define TIMER_TBMATCHR_TBMRL    0x0000FFFF  // TimerB match load value\r
205 \r
206 //*****************************************************************************\r
207 //\r
208 // The following defines the bit fields in the TIMER_TnPR register.\r
209 //\r
210 //*****************************************************************************\r
211 #define TIMER_TNPR_TNPSR        0x000000FF  // TimerN prescale value\r
212 \r
213 //*****************************************************************************\r
214 //\r
215 // The following defines the bit fields in the TIMER_TnPMR register.\r
216 //\r
217 //*****************************************************************************\r
218 #define TIMER_TNPMR_TNPSMR      0x000000FF  // TimerN prescale match value\r
219 \r
220 //*****************************************************************************\r
221 //\r
222 // The following define the bit fields in the TIMER_TAR register.\r
223 //\r
224 //*****************************************************************************\r
225 #define TIMER_TAR_TARH          0xFFFF0000  // TimerB val in 32 bit mode\r
226 #define TIMER_TAR_TARL          0x0000FFFF  // TimerA value\r
227 \r
228 //*****************************************************************************\r
229 //\r
230 // The following defines the bit fields in the TIMER_TBR register.\r
231 //\r
232 //*****************************************************************************\r
233 #define TIMER_TBR_TBRL          0x0000FFFF  // TimerB value\r
234 \r
235 #endif // __HW_TIMER_H__\r