Rev 224 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | SVN | RSS feed
| Rev 224 | Rev 247 | ||
|---|---|---|---|
| Line 25... | Line 25... | ||
| 25 | 25 | ||
| 26 | 26 | ||
| 27 | /*----------------------------------------------------------------------------- |
27 | /*----------------------------------------------------------------------------- |
| 28 | * Interrupt Service Routines |
28 | * Interrupt Service Routines |
| 29 | *---------------------------------------------------------------------------*/ |
29 | *---------------------------------------------------------------------------*/ |
| - | 30 | #if defined(TIMER2) |
|
| - | 31 | ISR(SIG_OVERFLOW2) { |
|
| - | 32 | TCNT2 = TIMEBASE_RELOAD; |
|
| - | 33 | gMilliSecTick++; |
|
| - | 34 | } |
|
| - | 35 | #else |
|
| 30 | ISR(SIG_OVERFLOW0) { |
36 | ISR(SIG_OVERFLOW0) { |
| 31 | TCNT0 = TIMEBASE_RELOAD; |
37 | TCNT0 = TIMEBASE_RELOAD; |
| 32 | gMilliSecTick++; |
38 | gMilliSecTick++; |
| 33 | } |
39 | } |
| - | 40 | #endif |
|
| 34 | 41 | ||
| 35 | 42 | ||
| 36 | /*----------------------------------------------------------------------------- |
43 | /*----------------------------------------------------------------------------- |
| 37 | * Public Functions |
44 | * Public Functions |
| 38 | *---------------------------------------------------------------------------*/ |
45 | *---------------------------------------------------------------------------*/ |
| 39 | 46 | ||
| 40 | /** |
47 | /** |
| 41 | * Initializes the timebase. The hardware timer interrupt source will be |
48 | * Initializes the timebase. The hardware timer interrupt source will be |
| 42 | * enabled, but global interrupts need to be enabled by the application. |
49 | * enabled, but global interrupts need to be enabled by the application. |
| 43 | */ |
50 | */ |
| 44 | void Timebase_Init() { |
51 | void Timebase_Init() { |
| - | 52 | #if defined(TIMER2) |
|
| - | 53 | #if defined(__AVR_ATmega8__) |
|
| - | 54 | #if TIMEBASE_PRESCALE == 64 |
|
| - | 55 | TCCR2 = (1<<CS21) | (1<<CS20); // prescaler: 64 |
|
| - | 56 | #elif TIMEBASE_PRESCALE == 256 |
|
| - | 57 | TCCR2 = (1<<CS22); // prescaler: 256 |
|
| - | 58 | #endif |
|
| - | 59 | TCNT2 = TIMEBASE_RELOAD; // set initial reload-value |
|
| - | 60 | TIFR |= (1<<TOV2); // clear overflow int. |
|
| - | 61 | TIMSK |= (1<<TOIE2); // enable overflow-interrupt |
|
| - | 62 | #endif |
|
| 45 | 63 | ||
| - | 64 | #if defined(__AVR_ATmega88__) |
|
| - | 65 | #if TIMEBASE_PRESCALE == 64 |
|
| - | 66 | TCCR2B = (1<<CS21) | (1<<CS20); // prescaler: 64 |
|
| - | 67 | #elif TIMEBASE_PRESCALE == 256 |
|
| - | 68 | TCCR2B = (1<<CS22); // prescaler: 256 |
|
| - | 69 | #endif |
|
| - | 70 | TCNT2 = TIMEBASE_RELOAD; // set initial reload-value |
|
| - | 71 | TIFR2 |= (1<<TOV2); // clear overflow int. |
|
| - | 72 | TIMSK2 |= (1<<TOIE2); // enable overflow-interrupt |
|
| - | 73 | #endif |
|
| - | 74 | #else /* Use timer0 */ |
|
| 46 | #if defined(__AVR_ATmega8__) |
75 | #if defined(__AVR_ATmega8__) |
| 47 | #if TIMEBASE_PRESCALE == 64 |
76 | #if TIMEBASE_PRESCALE == 64 |
| 48 | TCCR0 = (1<<CS01) | (1<<CS00); // prescaler: 64 |
77 | TCCR0 = (1<<CS01) | (1<<CS00); // prescaler: 64 |
| 49 | #elif TIMEBASE_PRESCALE == 256 |
78 | #elif TIMEBASE_PRESCALE == 256 |
| 50 | TCCR0 = (1<<CS02); // prescaler: 256 |
79 | TCCR0 = (1<<CS02); // prescaler: 256 |
| 51 | #endif |
80 | #endif |
| 52 | TCNT0 = TIMEBASE_RELOAD; // set initial reload-value |
81 | TCNT0 = TIMEBASE_RELOAD; // set initial reload-value |
| 53 | TIFR |= (1<<TOV0); // clear overflow int. |
82 | TIFR |= (1<<TOV0); // clear overflow int. |
| 54 | TIMSK |= (1<<TOIE0); // enable overflow-interrupt |
83 | TIMSK |= (1<<TOIE0); // enable overflow-interrupt |
| 55 | #endif |
84 | #endif |
| 56 | 85 | ||
| 57 | #if defined(__AVR_ATmega88__) |
86 | #if defined(__AVR_ATmega88__) |
| Line 61... | Line 90... | ||
| 61 | TCCR0B = (1<<CS02); // prescaler: 256 |
90 | TCCR0B = (1<<CS02); // prescaler: 256 |
| 62 | #endif |
91 | #endif |
| 63 | TCNT0 = TIMEBASE_RELOAD; // set initial reload-value |
92 | TCNT0 = TIMEBASE_RELOAD; // set initial reload-value |
| 64 | TIFR0 |= (1<<TOV0); // clear overflow int. |
93 | TIFR0 |= (1<<TOV0); // clear overflow int. |
| 65 | TIMSK0 |= (1<<TOIE0); // enable overflow-interrupt |
94 | TIMSK0 |= (1<<TOIE0); // enable overflow-interrupt |
| - | 95 | #endif |
|
| 66 | #endif |
96 | #endif |
| 67 | } |
97 | } |
| 68 | 98 | ||
| 69 | 99 | ||
| 70 | /** |
100 | /** |