Если требование по точности временнОго интервала жёсткое, то такой метод
Код
TCNT1=0;
не подойдёт.
В этом случае интервал удлинняется на непредсказуемую величину, зависящую от времени реакции на прерывание.
Лучше сделать так:
Код
OCR1A += INTERVAL_VALUE;
или так:
Код
ldi r17,HIGH(INTERVAL_VALUE)
ldi r16,LOW(INTERVAL_VALUE)
in r18,OCR1AL
add r16,r18
in r18,OCR1AH
adc r17,r18
out OCR1AH,r17
out OCR1AL,r16
Или ещё вариант - использовать режим обнуления таймера по совпадению (CTC).