From 9a10159e96a13585f9040ac5b15a3520f3d93ec8 Mon Sep 17 00:00:00 2001 From: Jakob Odersky Date: Fri, 24 Jan 2014 21:29:41 +0100 Subject: make timer depend on HZ define --- kernel/time/include/time/timer.h | 2 +- kernel/time/mcu/atmega2560/timer.c | 6 ++++-- main.c | 8 ++++---- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/kernel/time/include/time/timer.h b/kernel/time/include/time/timer.h index e59e374..1fa64d5 100644 --- a/kernel/time/include/time/timer.h +++ b/kernel/time/include/time/timer.h @@ -1,7 +1,7 @@ #ifndef TIMER_H #define TIMER_H -#define HZ 100 +#define HZ 10 void timer_init(); void timer_start(); diff --git a/kernel/time/mcu/atmega2560/timer.c b/kernel/time/mcu/atmega2560/timer.c index 663df02..e3ab6eb 100644 --- a/kernel/time/mcu/atmega2560/timer.c +++ b/kernel/time/mcu/atmega2560/timer.c @@ -10,7 +10,9 @@ void timer_init() { TCCR3B = (1 << WGM32); // turn on CTC mode: TCCR3B |= (1 << CS32) | (0 << CS31) | (1 << CS30); // set to 1024 prescaler - OCR3A = 770; + + unsigned int hz_counter = F_CPU / (2 * 1024 * HZ) - 1; + OCR3A = hz_counter; sei(); } @@ -23,7 +25,7 @@ void timer_stop() { } ISR(TIMER3_COMPA_vect, ISR_NAKED) { - SAVE_CONTEXT(); + SAVE_CONTEXT(); sched_tick(); sei(); RESTORE_CONTEXT(); diff --git a/main.c b/main.c index ca27358..e9fc28e 100644 --- a/main.c +++ b/main.c @@ -10,11 +10,11 @@ void blink( char id) { while(1) { debug_led(id,1); - yield(); - WAIT_CYCLES(5000); + //yield(); + WAIT_CYCLES(50000); debug_led(id,0); - yield(); - WAIT_CYCLES(5000); + //yield(); + WAIT_CYCLES(50000); } } -- cgit v1.2.3