update macro prescale values
This commit is contained in:
@@ -52,17 +52,13 @@
|
||||
// TIME
|
||||
#define PRESCALE_VALUE 1024 // can be 1, 8, 64, 256, 1024
|
||||
// table 16-5 : prescale sets
|
||||
#if (PRESCALE_VALUE == 1)
|
||||
#define PRESCALE_SET (0<<CS12 | 0<<CS11 | 1<<CS10)
|
||||
#elif (PRESCALE_VALUE == 8)
|
||||
#define PRESCALE_SET (0<<CS12 | 1<<CS11 | 0<<CS10)
|
||||
#elif (PRESCALE_VALUE == 64)
|
||||
#define PRESCALE_SET (0<<CS12 | 1<<CS11 | 1<<CS10)
|
||||
#elif (PRESCALE_VALUE == 256)
|
||||
#define PRESCALE_SET (1<<CS12 | 0<<CS11 | 0<<CS10)
|
||||
#elif (PRESCALE_VALUE == 1024)
|
||||
#define PRESCALE_SET (1<<CS12 | 0<<CS11 | 1<<CS10)
|
||||
#endif
|
||||
#define PRESCALE_SET(value) \
|
||||
((value) == 1 ? (0<<CS12 | 0<<CS11 | 1<<CS10) : \
|
||||
(value) == 8 ? (0<<CS12 | 1<<CS11 | 0<<CS10) : \
|
||||
(value) == 64 ? (0<<CS12 | 1<<CS11 | 1<<CS10) : \
|
||||
(value) == 256 ? (1<<CS12 | 0<<CS11 | 0<<CS10) : \
|
||||
(value) == 1024? (1<<CS12 | 0<<CS11 | 1<<CS10) : \
|
||||
(0<<CS12 | 0<<CS11 | 0<<CS10))
|
||||
#define TIME_MS(ms) (((F_CPU / PRESCALE_VALUE) * ms) / 1000)
|
||||
#define PERIOD 1000
|
||||
#define DUTY_CYCLE 10
|
||||
@@ -129,7 +125,7 @@ int main() {
|
||||
|
||||
OCR1A = TIME_MS(PERCENT(DUTY_CYCLE, PERIOD)); // 16.9.3 : set the duty cycle to DUTY_CYCLE% of the time -> OC1A (alternate function of PORTB1, aka LED2) is cleared when TCNT1 (the counter value) equals OCR1A
|
||||
|
||||
TCCR1B |= (PRESCALE_SET); // start the timer with the prescaler
|
||||
TCCR1B |= (PRESCALE_SET(PRESCALE_VALUE)); // start the timer with the prescaler
|
||||
|
||||
while(1) {
|
||||
on_press(SW1, increment_duty_cycle, ¶ms);
|
||||
|
||||
Reference in New Issue
Block a user