Хорошая длинная статья, написано интересно, спасибо.
Один момент: если кто-то будет учиться программированию AVR по ней, прошу обратить внимание на использование глобальных volatile uint16_t переменных.
У автора основной цикл спит между прерываниями таймера, но вообще есть опасность нарваться на неатомарный доступ к таким переменным, когда команды чтения в основном цикле прерываются записью в прерывании.
После того, как заканчивается триал, CLion ограничивает рабочую сессию длительностью в 30 минут. После этого закрывается, корректно сохранив все файлы, сессию и завершив операции. Можно запустить обратно и всё восстановится.
Один момент: если кто-то будет учиться программированию AVR по ней, прошу обратить внимание на использование глобальных volatile uint16_t переменных.
У автора основной цикл спит между прерываниями таймера, но вообще есть опасность нарваться на неатомарный доступ к таким переменным, когда команды чтения в основном цикле прерываются записью в прерывании.