Есть кусок кода определение длительности импульса с помощью 16бит счетчика
unsigned int x, y,z;
unsigned int time;
ISR (TIMER1_CAPT_vect)
{ z=ICR1;
if(bit_is_set(PIND, PD4))
{
x = z;
TCCR1B &= ~(1<<ICES1);
}
else
{
y = z;
TCCR1B |= (1<<ICES1);
time = (x-y);/
}
корректно ли вычислять длительность простым вычитанием из начального значения счетчика конечного ?
ведь может получится что y>x , а так же может быть X до переполнения а Y после переполнения .