Цитата(dvs85 @ Apr 15 2008, 02:55)

Скажите, правильно ли я разобрался с работой с регистрами таймера?..
Таймер работает всё время в режиме 0 (Normal mode). При изменении входа ICP1 (c 0 в 1 или с 1 в 0 - задаётся разрядом ICES1, а ICP1 должен быть настроен как вход) счетный регистр таймера TCNT переписывается в регистр захвата ICR, и выставляется флаг ICF1. Если разрешить прерывание по этому событию, то в процедуре прерывания регистр захвата можно считать и запомнить. Таймер без остановок продолжает считать, и, возможно, его счетный регистр переполнится. По этому событию (переполнение) также необходимо разрешить прерывание, и в процедуре его обработки вести подсчет числа переполнений. Когда на входе ICP1 снова возникнит фронт импульса, соответствующий активному, новое значение счетного регистра таймера запишется в регистр захвата, и выставится флаг, произойдет прерывание. Регистр захвата считывается и, по двум значениям (текущему и запомненному ранее), а также по числу переполнений вычисляется интервал времени.