Цитата(ReM37 @ Nov 29 2006, 00:35)

Нужно измерить длительность импульса. Но никак не понимаю как это сделать. Datasheet читал. Но все равно непонятно.

То есть понятно, что для этого надо использовать Timer1, но как настроить так, чтобы счет начался по нарастающему фронту, а заканчивался ро спадающему? Очень нужен пример на C...
Вот держи!!! Длительность=Tf-Tr; Рабочий пример!!
interrupt [TIM1_CAPT] void tim1_capt_isr(){
static register unsigned int temp;
temp = ICR1L; //Read low byte first (important)
temp |= (unsigned int)ICR1H << 8; //Read high byte and shift into top byte
if (CAPTURE_FRONT_F){ //обработка переднего фронта импульса тока
TCCR1B = 0b10000001; //switch to falling edge
CAPTURE_FRONT_F = 0;
Tr=temp+4; //компенсация
} //if
else { //обработка заднего фронта импульса тока
TCCR1B = 0b11000001; //switch to rising edge
CAPTURE_FRONT_F = 1;
Tf=temp-4; //компенсация
} //else
}//tim1_capt_isr()