Всем доброго времени суток.
Помогите разобраться с таймером. Необходимо запустить таймер от внешнего прерывания (передний фронт сигнала), затем по приходу заднего фронта сигнала (второе внешнее прерывание) взять из таймера натиканное число. Вроде все как-то просто. Примеры нашел в инете. Вот пробовал по всякому...
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. Не входит в прерывание, какие бы примеры не брал.
|