Задачи:
- Минимальное потребление энергии;
- Подсчёт импульсов на ноге с защитой от дребезга;
- Приём начального значения и передача текущего по 1wire.
Параметры среды исполнения прошивки:
- Attiny13A.
- Внутренний генератор на 4.8МГц, запуск за 14CK + 64ms (CKSEL=01, SUT=10).
- Включен делитель на 8 (CKDIV8=0).
- Контроль питания отключен (BODLEVEL=11).
- Фьюзы: 0xFF, 0x69.
- Порт ввода вывода:
- PB0 - интерфейс 1wire, далее PIN_1WIRE;
- PB1 - вход с оптического датчика, далее PIN_OPTO.
Импульс приходит с оптического датчика, который стоит между питанием и выводом PIN_OPTO микроконтроллёра.
У микроконтроллёра attiny13a есть одно настраиваемое прерывание INT0 на ноге PB1 и общее ненастраиваемое прерывание для порта PCINT[0:5].
Для отслеживания состояния оптического датчика используется вывод PIN_OPTO. Для активации прерывания по изменению состояния вывода следует установить бит PCIE регистра GIMSK, а сам вывод указать установкой соответствующего PCINTn бита в регистре PCMSK.
Микроконтроллёр управляется по шине 1wire, которая подключена к выводу PIN_1WIRE.