diff --git a/firmware/kernel.c b/firmware/kernel.c index 639b73def5..12b6eea781 100644 --- a/firmware/kernel.c +++ b/firmware/kernel.c @@ -25,6 +25,8 @@ long current_tick = 0; +void (*tick_funcs[NUM_TICK_TASKS])(void); + static void tick_start(unsigned int interval_in_ms); /**************************************************************************** @@ -32,6 +34,14 @@ static void tick_start(unsigned int interval_in_ms); ****************************************************************************/ void kernel_init(void) { + int i; + + /* Clear the tick task array */ + for(i = 0;i < NUM_TICK_TASKS;i++) + { + tick_funcs[i] = NULL; + } + tick_start(1000/HZ); } @@ -103,9 +113,6 @@ bool queue_empty(struct event_queue* q) /**************************************************************************** * Timer tick ****************************************************************************/ -#define NUM_TICK_TASKS 4 -void (*tick_funcs[NUM_TICK_TASKS])(void) = {NULL, NULL, NULL, NULL}; - static void tick_start(unsigned int interval_in_ms) { unsigned int count; diff --git a/firmware/kernel.h b/firmware/kernel.h index 8f981b3753..f79bc42b80 100644 --- a/firmware/kernel.h +++ b/firmware/kernel.h @@ -27,6 +27,8 @@ #define HZ 100 /* number of ticks per second */ +#define NUM_TICK_TASKS 4 + #define QUEUE_LENGTH 16 /* MUST be a power of 2 */ #define QUEUE_LENGTH_MASK (QUEUE_LENGTH - 1)