Так у меня и вынесено. Это и есть ответ автору темы - сопроцессор на ATmega88 занимается только генерацией сигнала, для него ПО написано на ассемблере. А основной процессор, который реализует интерфейс пользователя, запрограммирован на Си. Обмен между ними ведется по последовательной шине, при этом прерывания не используются, чтобы не вмешиваться в процесс генерации.