Subversion Repositories HomeAutomation

Rev

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
/**