#include <cfg/debug.h>
#include <cpu/irq.h>
-#include "io/lm3s.h"
-
-#include "irq_lm3s.h"
+#include <io/lm3s.h>
+#include <drv/irq_lm3s.h>
#include "timer_lm3s.h"
-unsigned long ticks;
-
INLINE void timer_hw_setPeriod(unsigned long period)
{
ASSERT(period < (1 << 24));
- HWREG(NVIC_ST_RELOAD) = period;
-}
-
-static void timer_hw_handler(void)
-{
- ticks++;
+ HWREG(NVIC_ST_RELOAD) = period - 1;
}
static void timer_hw_enable(void)
void timer_hw_init(void)
{
- timer_hw_setPeriod(1000000);
- sysirq_setHandler(FAULT_SYSTICK, timer_hw_handler);
+ timer_hw_setPeriod(CPU_FREQ / TIMER_TICKS_PER_SEC);
+ sysirq_setHandler(FAULT_SYSTICK, timer_handler);
timer_hw_enable();
}