Всем доброго времени суток.
Помогите разобраться с таймером. Необходимо запустить таймер от внешнего прерывания (передний фронт сигнала), затем по приходу заднего фронта сигнала (второе внешнее прерывание) взять из таймера натиканное число. Вроде все как-то просто. Примеры нашел в инете.
Вот пробовал по всякому...
void Timer_capture_init();
static void T0isr ();
void T0isr ()
{
IO0SET_bit.P0_10 = 1;
int value=0;
value = T0CR0; // read the capture value
T0IR |= 0x00000001; //Clear match 0 interrupt
VICVectAddr = 0x00000000; //Dummy write to signal end of interrupt
}
void Timer_capture_init()
{
VPBDIV = 0x00000002; //Set pclk to 30 Mhz
PINSEL0 |= 0x00000020; //Enable pin 0.2 as capture channel0
T0PR = 0x0000001E; //Load prescaler for 1 Msec tick
T0TCR = 0x00000002; //Reset counter and prescaler
T0CCR = 0x00000005; //Capture on rising edge of channel0
T0TCR = 0x00000001; //enable timer
VICVectAddr4 = (unsigned int)T0isr; //Set the timer ISR vector address
VICVectCntl4 = 0x00000024; //Set channel
VICIntEnable = 0x00000010; //Enable the interrupt
return;
}
Пользуюсь IAR 4.2. Не входит в прерывание, какие бы примеры не брал.