2 * Copyright Droids Corporation, Microb Technology, Eirbot (2006)
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 * Revision : $Id: timer_conf_check.c,v 1.1.2.4 2009-01-30 20:18:36 zer0 Exp $
23 #include <aversive/parts.h>
24 #include <aversive/timers.h>
27 #include <timer_definitions.h>
28 #include <timer_prescaler.h>
30 #include <timer_config.h>
33 #if defined TIMER0_ENABLED && ! defined TIMER0_AVAILABLE
34 #error This arch has no TIMER0
37 #if defined TIMER1_ENABLED && ! defined TIMER1_AVAILABLE
38 #error This arch has no TIMER1
41 #if defined TIMER2_ENABLED && ! defined TIMER2_AVAILABLE
42 #error This arch has no TIMER2
45 #if defined TIMER3_ENABLED && ! defined TIMER3_AVAILABLE
46 #error This arch has no TIMER3
49 #if defined TIMER4_ENABLED && ! defined TIMER4_AVAILABLE
50 #error This arch has no TIMER4
53 #if defined TIMER5_ENABLED && ! defined TIMER5_AVAILABLE
54 #error This arch has no TIMER5
58 #if defined TIMER0_ENABLED
60 #if defined TIMER0_PRESCALER_REG_0 && TIMER0_PRESCALER_REG_0 == TIMER0_PRESCALER_DIV
61 #define TIMER0_CONF_OK
64 #if defined TIMER0_PRESCALER_REG_1 && TIMER0_PRESCALER_REG_1 == TIMER0_PRESCALER_DIV
65 #define TIMER0_CONF_OK
68 #if defined TIMER0_PRESCALER_REG_2 && TIMER0_PRESCALER_REG_2 == TIMER0_PRESCALER_DIV
69 #define TIMER0_CONF_OK
72 #if defined TIMER0_PRESCALER_REG_3 && TIMER0_PRESCALER_REG_3 == TIMER0_PRESCALER_DIV
73 #define TIMER0_CONF_OK
76 #if defined TIMER0_PRESCALER_REG_4 && TIMER0_PRESCALER_REG_4 == TIMER0_PRESCALER_DIV
77 #define TIMER0_CONF_OK
80 #if defined TIMER0_PRESCALER_REG_5 && TIMER0_PRESCALER_REG_5 == TIMER0_PRESCALER_DIV
81 #define TIMER0_CONF_OK
84 #if defined TIMER0_PRESCALER_REG_6 && TIMER0_PRESCALER_REG_6 == TIMER0_PRESCALER_DIV
85 #define TIMER0_CONF_OK
88 #if defined TIMER0_PRESCALER_REG_7 && TIMER0_PRESCALER_REG_7 == TIMER0_PRESCALER_DIV
89 #define TIMER0_CONF_OK
92 #if defined TIMER0_PRESCALER_REG_8 && TIMER0_PRESCALER_REG_8 == TIMER0_PRESCALER_DIV
93 #define TIMER0_CONF_OK
96 #if defined TIMER0_PRESCALER_REG_9 && TIMER0_PRESCALER_REG_9 == TIMER0_PRESCALER_DIV
97 #define TIMER0_CONF_OK
100 #if defined TIMER0_PRESCALER_REG_10 && TIMER0_PRESCALER_REG_10 == TIMER0_PRESCALER_DIV
101 #define TIMER0_CONF_OK
104 #if defined TIMER0_PRESCALER_REG_11 && TIMER0_PRESCALER_REG_11 == TIMER0_PRESCALER_DIV
105 #define TIMER0_CONF_OK
108 #if defined TIMER0_PRESCALER_REG_12 && TIMER0_PRESCALER_REG_12 == TIMER0_PRESCALER_DIV
109 #define TIMER0_CONF_OK
112 #if defined TIMER0_PRESCALER_REG_13 && TIMER0_PRESCALER_REG_13 == TIMER0_PRESCALER_DIV
113 #define TIMER0_CONF_OK
116 #if defined TIMER0_PRESCALER_REG_14 && TIMER0_PRESCALER_REG_14 == TIMER0_PRESCALER_DIV
117 #define TIMER0_CONF_OK
120 #if defined TIMER0_PRESCALER_REG_15 && TIMER0_PRESCALER_REG_15 == TIMER0_PRESCALER_DIV
121 #define TIMER0_CONF_OK
124 #ifndef TIMER0_CONF_OK
125 #error TIMER0 has a bad prescaler value
132 #if defined TIMER1_ENABLED
134 #if defined TIMER1_PRESCALER_REG_0 && TIMER1_PRESCALER_REG_0 == TIMER1_PRESCALER_DIV
135 #define TIMER1_CONF_OK
138 #if defined TIMER1_PRESCALER_REG_1 && TIMER1_PRESCALER_REG_1 == TIMER1_PRESCALER_DIV
139 #define TIMER1_CONF_OK
142 #if defined TIMER1_PRESCALER_REG_2 && TIMER1_PRESCALER_REG_2 == TIMER1_PRESCALER_DIV
143 #define TIMER1_CONF_OK
146 #if defined TIMER1_PRESCALER_REG_3 && TIMER1_PRESCALER_REG_3 == TIMER1_PRESCALER_DIV
147 #define TIMER1_CONF_OK
150 #if defined TIMER1_PRESCALER_REG_4 && TIMER1_PRESCALER_REG_4 == TIMER1_PRESCALER_DIV
151 #define TIMER1_CONF_OK
154 #if defined TIMER1_PRESCALER_REG_5 && TIMER1_PRESCALER_REG_5 == TIMER1_PRESCALER_DIV
155 #define TIMER1_CONF_OK
158 #if defined TIMER1_PRESCALER_REG_6 && TIMER1_PRESCALER_REG_6 == TIMER1_PRESCALER_DIV
159 #define TIMER1_CONF_OK
162 #if defined TIMER1_PRESCALER_REG_7 && TIMER1_PRESCALER_REG_7 == TIMER1_PRESCALER_DIV
163 #define TIMER1_CONF_OK
166 #if defined TIMER1_PRESCALER_REG_8 && TIMER1_PRESCALER_REG_8 == TIMER1_PRESCALER_DIV
167 #define TIMER1_CONF_OK
170 #if defined TIMER1_PRESCALER_REG_9 && TIMER1_PRESCALER_REG_9 == TIMER1_PRESCALER_DIV
171 #define TIMER1_CONF_OK
174 #if defined TIMER1_PRESCALER_REG_10 && TIMER1_PRESCALER_REG_10 == TIMER1_PRESCALER_DIV
175 #define TIMER1_CONF_OK
178 #if defined TIMER1_PRESCALER_REG_11 && TIMER1_PRESCALER_REG_11 == TIMER1_PRESCALER_DIV
179 #define TIMER1_CONF_OK
182 #if defined TIMER1_PRESCALER_REG_12 && TIMER1_PRESCALER_REG_12 == TIMER1_PRESCALER_DIV
183 #define TIMER1_CONF_OK
186 #if defined TIMER1_PRESCALER_REG_13 && TIMER1_PRESCALER_REG_13 == TIMER1_PRESCALER_DIV
187 #define TIMER1_CONF_OK
190 #if defined TIMER1_PRESCALER_REG_14 && TIMER1_PRESCALER_REG_14 == TIMER1_PRESCALER_DIV
191 #define TIMER1_CONF_OK
194 #if defined TIMER1_PRESCALER_REG_15 && TIMER1_PRESCALER_REG_15 == TIMER1_PRESCALER_DIV
195 #define TIMER1_CONF_OK
198 #ifndef TIMER1_CONF_OK
199 #error TIMER1 has a bad prescaler value
205 #if defined TIMER2_ENABLED
207 #if defined TIMER2_PRESCALER_REG_0 && TIMER2_PRESCALER_REG_0 == TIMER2_PRESCALER_DIV
208 #define TIMER2_CONF_OK
211 #if defined TIMER2_PRESCALER_REG_1 && TIMER2_PRESCALER_REG_1 == TIMER2_PRESCALER_DIV
212 #define TIMER2_CONF_OK
215 #if defined TIMER2_PRESCALER_REG_2 && TIMER2_PRESCALER_REG_2 == TIMER2_PRESCALER_DIV
216 #define TIMER2_CONF_OK
219 #if defined TIMER2_PRESCALER_REG_3 && TIMER2_PRESCALER_REG_3 == TIMER2_PRESCALER_DIV
220 #define TIMER2_CONF_OK
223 #if defined TIMER2_PRESCALER_REG_4 && TIMER2_PRESCALER_REG_4 == TIMER2_PRESCALER_DIV
224 #define TIMER2_CONF_OK
227 #if defined TIMER2_PRESCALER_REG_5 && TIMER2_PRESCALER_REG_5 == TIMER2_PRESCALER_DIV
228 #define TIMER2_CONF_OK
231 #if defined TIMER2_PRESCALER_REG_6 && TIMER2_PRESCALER_REG_6 == TIMER2_PRESCALER_DIV
232 #define TIMER2_CONF_OK
235 #if defined TIMER2_PRESCALER_REG_7 && TIMER2_PRESCALER_REG_7 == TIMER2_PRESCALER_DIV
236 #define TIMER2_CONF_OK
239 #if defined TIMER2_PRESCALER_REG_8 && TIMER2_PRESCALER_REG_8 == TIMER2_PRESCALER_DIV
240 #define TIMER2_CONF_OK
243 #if defined TIMER2_PRESCALER_REG_9 && TIMER2_PRESCALER_REG_9 == TIMER2_PRESCALER_DIV
244 #define TIMER2_CONF_OK
247 #if defined TIMER2_PRESCALER_REG_10 && TIMER2_PRESCALER_REG_10 == TIMER2_PRESCALER_DIV
248 #define TIMER2_CONF_OK
251 #if defined TIMER2_PRESCALER_REG_11 && TIMER2_PRESCALER_REG_11 == TIMER2_PRESCALER_DIV
252 #define TIMER2_CONF_OK
255 #if defined TIMER2_PRESCALER_REG_12 && TIMER2_PRESCALER_REG_12 == TIMER2_PRESCALER_DIV
256 #define TIMER2_CONF_OK
259 #if defined TIMER2_PRESCALER_REG_13 && TIMER2_PRESCALER_REG_13 == TIMER2_PRESCALER_DIV
260 #define TIMER2_CONF_OK
263 #if defined TIMER2_PRESCALER_REG_14 && TIMER2_PRESCALER_REG_14 == TIMER2_PRESCALER_DIV
264 #define TIMER2_CONF_OK
267 #if defined TIMER2_PRESCALER_REG_15 && TIMER2_PRESCALER_REG_15 == TIMER2_PRESCALER_DIV
268 #define TIMER2_CONF_OK
271 #ifndef TIMER2_CONF_OK
272 #error TIMER2 has a bad prescaler value
278 #if defined TIMER3_ENABLED
280 #if defined TIMER3_PRESCALER_REG_0 && TIMER3_PRESCALER_REG_0 == TIMER3_PRESCALER_DIV
281 #define TIMER3_CONF_OK
284 #if defined TIMER3_PRESCALER_REG_1 && TIMER3_PRESCALER_REG_1 == TIMER3_PRESCALER_DIV
285 #define TIMER3_CONF_OK
288 #if defined TIMER3_PRESCALER_REG_2 && TIMER3_PRESCALER_REG_2 == TIMER3_PRESCALER_DIV
289 #define TIMER3_CONF_OK
292 #if defined TIMER3_PRESCALER_REG_3 && TIMER3_PRESCALER_REG_3 == TIMER3_PRESCALER_DIV
293 #define TIMER3_CONF_OK
296 #if defined TIMER3_PRESCALER_REG_4 && TIMER3_PRESCALER_REG_4 == TIMER3_PRESCALER_DIV
297 #define TIMER3_CONF_OK
300 #if defined TIMER3_PRESCALER_REG_5 && TIMER3_PRESCALER_REG_5 == TIMER3_PRESCALER_DIV
301 #define TIMER3_CONF_OK
304 #if defined TIMER3_PRESCALER_REG_6 && TIMER3_PRESCALER_REG_6 == TIMER3_PRESCALER_DIV
305 #define TIMER3_CONF_OK
308 #if defined TIMER3_PRESCALER_REG_7 && TIMER3_PRESCALER_REG_7 == TIMER3_PRESCALER_DIV
309 #define TIMER3_CONF_OK
312 #if defined TIMER3_PRESCALER_REG_8 && TIMER3_PRESCALER_REG_8 == TIMER3_PRESCALER_DIV
313 #define TIMER3_CONF_OK
316 #if defined TIMER3_PRESCALER_REG_9 && TIMER3_PRESCALER_REG_9 == TIMER3_PRESCALER_DIV
317 #define TIMER3_CONF_OK
320 #if defined TIMER3_PRESCALER_REG_10 && TIMER3_PRESCALER_REG_10 == TIMER3_PRESCALER_DIV
321 #define TIMER3_CONF_OK
324 #if defined TIMER3_PRESCALER_REG_11 && TIMER3_PRESCALER_REG_11 == TIMER3_PRESCALER_DIV
325 #define TIMER3_CONF_OK
328 #if defined TIMER3_PRESCALER_REG_12 && TIMER3_PRESCALER_REG_12 == TIMER3_PRESCALER_DIV
329 #define TIMER3_CONF_OK
332 #if defined TIMER3_PRESCALER_REG_13 && TIMER3_PRESCALER_REG_13 == TIMER3_PRESCALER_DIV
333 #define TIMER3_CONF_OK
336 #if defined TIMER3_PRESCALER_REG_14 && TIMER3_PRESCALER_REG_14 == TIMER3_PRESCALER_DIV
337 #define TIMER3_CONF_OK
340 #if defined TIMER3_PRESCALER_REG_15 && TIMER3_PRESCALER_REG_15 == TIMER3_PRESCALER_DIV
341 #define TIMER3_CONF_OK
344 #ifndef TIMER3_CONF_OK
345 #error TIMER3 has a bad prescaler value
350 #if defined TIMER4_ENABLED
352 #if defined TIMER4_PRESCALER_REG_0 && TIMER4_PRESCALER_REG_0 == TIMER4_PRESCALER_DIV
353 #define TIMER4_CONF_OK
356 #if defined TIMER4_PRESCALER_REG_1 && TIMER4_PRESCALER_REG_1 == TIMER4_PRESCALER_DIV
357 #define TIMER4_CONF_OK
360 #if defined TIMER4_PRESCALER_REG_2 && TIMER4_PRESCALER_REG_2 == TIMER4_PRESCALER_DIV
361 #define TIMER4_CONF_OK
364 #if defined TIMER4_PRESCALER_REG_3 && TIMER4_PRESCALER_REG_3 == TIMER4_PRESCALER_DIV
365 #define TIMER4_CONF_OK
368 #if defined TIMER4_PRESCALER_REG_4 && TIMER4_PRESCALER_REG_4 == TIMER4_PRESCALER_DIV
369 #define TIMER4_CONF_OK
372 #if defined TIMER4_PRESCALER_REG_5 && TIMER4_PRESCALER_REG_5 == TIMER4_PRESCALER_DIV
373 #define TIMER4_CONF_OK
376 #if defined TIMER4_PRESCALER_REG_6 && TIMER4_PRESCALER_REG_6 == TIMER4_PRESCALER_DIV
377 #define TIMER4_CONF_OK
380 #if defined TIMER4_PRESCALER_REG_7 && TIMER4_PRESCALER_REG_7 == TIMER4_PRESCALER_DIV
381 #define TIMER4_CONF_OK
384 #if defined TIMER4_PRESCALER_REG_8 && TIMER4_PRESCALER_REG_8 == TIMER4_PRESCALER_DIV
385 #define TIMER4_CONF_OK
388 #if defined TIMER4_PRESCALER_REG_9 && TIMER4_PRESCALER_REG_9 == TIMER4_PRESCALER_DIV
389 #define TIMER4_CONF_OK
392 #if defined TIMER4_PRESCALER_REG_10 && TIMER4_PRESCALER_REG_10 == TIMER4_PRESCALER_DIV
393 #define TIMER4_CONF_OK
396 #if defined TIMER4_PRESCALER_REG_11 && TIMER4_PRESCALER_REG_11 == TIMER4_PRESCALER_DIV
397 #define TIMER4_CONF_OK
400 #if defined TIMER4_PRESCALER_REG_12 && TIMER4_PRESCALER_REG_12 == TIMER4_PRESCALER_DIV
401 #define TIMER4_CONF_OK
404 #if defined TIMER4_PRESCALER_REG_13 && TIMER4_PRESCALER_REG_13 == TIMER4_PRESCALER_DIV
405 #define TIMER4_CONF_OK
408 #if defined TIMER4_PRESCALER_REG_14 && TIMER4_PRESCALER_REG_14 == TIMER4_PRESCALER_DIV
409 #define TIMER4_CONF_OK
412 #if defined TIMER4_PRESCALER_REG_15 && TIMER4_PRESCALER_REG_15 == TIMER4_PRESCALER_DIV
413 #define TIMER4_CONF_OK
416 #ifndef TIMER4_CONF_OK
417 #error TIMER4 has a bad prescaler value
422 #if defined TIMER5_ENABLED
424 #if defined TIMER5_PRESCALER_REG_0 && TIMER5_PRESCALER_REG_0 == TIMER5_PRESCALER_DIV
425 #define TIMER5_CONF_OK
428 #if defined TIMER5_PRESCALER_REG_1 && TIMER5_PRESCALER_REG_1 == TIMER5_PRESCALER_DIV
429 #define TIMER5_CONF_OK
432 #if defined TIMER5_PRESCALER_REG_2 && TIMER5_PRESCALER_REG_2 == TIMER5_PRESCALER_DIV
433 #define TIMER5_CONF_OK
436 #if defined TIMER5_PRESCALER_REG_3 && TIMER5_PRESCALER_REG_3 == TIMER5_PRESCALER_DIV
437 #define TIMER5_CONF_OK
440 #if defined TIMER5_PRESCALER_REG_4 && TIMER5_PRESCALER_REG_4 == TIMER5_PRESCALER_DIV
441 #define TIMER5_CONF_OK
444 #if defined TIMER5_PRESCALER_REG_5 && TIMER5_PRESCALER_REG_5 == TIMER5_PRESCALER_DIV
445 #define TIMER5_CONF_OK
448 #if defined TIMER5_PRESCALER_REG_6 && TIMER5_PRESCALER_REG_6 == TIMER5_PRESCALER_DIV
449 #define TIMER5_CONF_OK
452 #if defined TIMER5_PRESCALER_REG_7 && TIMER5_PRESCALER_REG_7 == TIMER5_PRESCALER_DIV
453 #define TIMER5_CONF_OK
456 #if defined TIMER5_PRESCALER_REG_8 && TIMER5_PRESCALER_REG_8 == TIMER5_PRESCALER_DIV
457 #define TIMER5_CONF_OK
460 #if defined TIMER5_PRESCALER_REG_9 && TIMER5_PRESCALER_REG_9 == TIMER5_PRESCALER_DIV
461 #define TIMER5_CONF_OK
464 #if defined TIMER5_PRESCALER_REG_10 && TIMER5_PRESCALER_REG_10 == TIMER5_PRESCALER_DIV
465 #define TIMER5_CONF_OK
468 #if defined TIMER5_PRESCALER_REG_11 && TIMER5_PRESCALER_REG_11 == TIMER5_PRESCALER_DIV
469 #define TIMER5_CONF_OK
472 #if defined TIMER5_PRESCALER_REG_12 && TIMER5_PRESCALER_REG_12 == TIMER5_PRESCALER_DIV
473 #define TIMER5_CONF_OK
476 #if defined TIMER5_PRESCALER_REG_13 && TIMER5_PRESCALER_REG_13 == TIMER5_PRESCALER_DIV
477 #define TIMER5_CONF_OK
480 #if defined TIMER5_PRESCALER_REG_14 && TIMER5_PRESCALER_REG_14 == TIMER5_PRESCALER_DIV
481 #define TIMER5_CONF_OK
484 #if defined TIMER5_PRESCALER_REG_15 && TIMER5_PRESCALER_REG_15 == TIMER5_PRESCALER_DIV
485 #define TIMER5_CONF_OK
488 #ifndef TIMER5_CONF_OK
489 #error TIMER5 has a bad prescaler value