Ага, давным-давно, в далёкой - предалёкой галактике
Вот что мы насобирали по алгоритму измерения согласно datashit датчика
обозначения по datasheet atmega328:
INT0- внешнее прерывание
TCNT1 - таймер высокого разрешения
Инициализация
установить условие INT0 и адрес обработчика INT0 по переднему фронту ECHO
Старт измерения
записать 0 в счетный регистр TCNT1
Выдать импульс TRIG
Обработчик INT0 по переднему фронту ECHO:
запустить TCNT1
установить условие INT0 и адрес обработчика INT0 по заднему фронту ECHO
Обработчик INT0 по заднему фронту ECHO:
остановить TCNT1
установить условие INT0 и адрес обработчика INT0 по переднему фронту ECHO
вызвать обработку результата измерения
Обработка результата измерения
вычислить измеренное TCNT1 время по величине в счетном регистре
пересчитать вычисленное время в дистанцию
отобразить результат
разрешить старт нового измерения