/** * \file * * * \author Francesco Sacchi * * \brief Low-level timer module for LPC2xxx (implementation). * * notest:arm */ #include "cfg/cfg_timer.h" #include // BV() #include // BV() #include #include #include "timer_lpc2.h" /** HW dependent timer initialization */ #if (CONFIG_TIMER == TIMER0_COMPARE0) #define TIMER0_ID 4 void timer_hw_init(void) { /* Power on timer0 */ PCONP |= BV(1); /* Set TIMER0 clk to CPU_FREQ */ PCLKSEL0 &= ~0x0C; PCLKSEL0 |= 0x04; /* reset prescaler counter */ T0PR = 0; /* Set match register 0 */ T0MR0 = TIMER_HW_CNT; /* IRQ and reset counter on compare match 0 */ T0MCR &= ~0x03; T0MCR |= 0x03; /* Reset timer0 counter and prescaler */ T0TCR = 0x02; vic_setVector(TIMER0_ID, timer_handler); vic_enable(TIMER0_ID); /* Start timer0 */ T0TCR = 0x01; } #else #error Unimplemented value for CONFIG_TIMER #endif /* CONFIG_TIMER */