Однако в адуринье на основе АВРок любое прерывание "перекрывает кислород" функциям контроля времени.
Ведь в прерывании ВЛОЖЕННЫЕ прерывания по умолчанию запрещены.
Там или вложенные прерывания разрешать надо или делать тайм-слоты на основе программного подсчета тактов в командах.
Может для первичной обучалки адуринка сгодится?
Там и симулятор приличный имеется с полным фаршем внешней аппаратной обвязки...
https://www.sites.google.com/site/unoardusim/
И чего б поднабросать можно (правда не для тиньки - но основа алгоритмов одинакова будет... и просмотр пошаговый удобен...)...
Помимо прочего помним о предделителях счетчиков. Ибо те предделители тикают и переполняются сами по себе независимо - работает счетчик или нет.
При запуске интервалометра необходимо предварительно сбрасывать предделитель соответствующего счетчика.
Под ассемблером и с учетом тини13...
Можно использовать цифровые компараторы таймера - заложить в них длительность положительной части измерямного импульса.
С приходом фронта внешнего сигнала запуск таймера
Прерывание по совпадению с одного компаратора - 0 (если не имело место большее по величине) - ставим флаг 0
Прерывание со второго - 1. ставим флаг 1
Общее прерывание по переполнению - ошибка интервала ставим флаг 3 и останов таймера по переполнению
С момента фронта внешнего импульса запускаем программное ожидание спада положительного интервала.
По окончании импульса останов счета и смотрим флаги, а уж по ним принимаем решение о том, что у нас было.


