входная частота очень низкая, тем более скорее всего ее будет задавать человек с кнопки - то есть измерять можно не особо точно - обычное millis() справится. тогда измеряем время между нажатиями, делим на 24 и по таймеру высылаем f8. должно работать более-менее измерять нажатия можно двумя вариантами - либо парные нажатия - нажал раз - начался отсчет, нажал два - закончился. Либо непрерывно обновлять измерение, при этом должно быть задано какое-то максимальное время, после которого будет считаться что нажимать дальше не будут (конец серии нажатий).
USART в авр работает независимо от процессора. Достаточно послать данные в UDR (UDR0 = 0xF8 и он без задержки отправит в Tx. Но предварительно в сетапе должно быть Serial.begin(). Деление на 24 то же прилично времени съедает. Где то видел быстрый алгоритм деления на 3. Так что наверное делить на 3 и сдвигом ввправо на 3 разряда доделить на 8. И вместо millis() может лучше напрямую с регистрами.
если таймеры по нормальному использовать можно все очень точно и быстро сделать, тем более что тут даже не килогерцы, а сотня герц максимум. Другое дело, что ТС как я понял планирует все это перемещать на другие микросхемы, поэтому не хочет использовать функционал в обход стандартной ардуины. Хотя если знать какие микросхемы, и если это атмеги, то можно заранее предусмотреть, там всего то пара названий регистров будет отличаться.
Не знаю как это можно организовать на уровне ардуино, но используя идею можно сделать так. Atmega 8 запускае на 16 МГц, что-бы считала побыстрее, предделитель таймера 1 на 1024, что-бы насчитал поменьше. На вход ICP1 сенсорную кнопку, что-бы не заморачиваться с дребезгом. UART, что-бы успевал, на скорость 250К или 0,5М. Там и отклонение частоты нулевое. По нажатию кнопки падаем в прерывание захвата. Обнуляем счётчик таймера, забираем значение из регистра захвата. Делим и отправляем в UART. Я думаю что при будет вполне успевать. Первое нажатие, естественно, выдаст фигню.
если на кнопку будет нажимать человек, то никаких ICP не нужно, даже вообще без прерываний можно обойтись, нет надобности до наносекунд измерять нажимания человека, таймер лучше использовать только для отправки. никакой скорости уарта 250к не получится - это миди и там скорость всегда 31250 первое нажатие вообще не должно ничего выдавать - оно должно запускать отсчет, а выдавать должны последующие нажатия. заканчивать серию нажатий можно по истечению времени - например если сколько-то секунд не нажимали, тогда следующее нажатие снова станет первым. Ну либо нажимать попарно - первое старт второе измеряет
зачем отправлять что-то деленное? отправлять надо F8, причем не абы как, а с определенной частотой. можно сделать и отправку и измерение на одном таймере, но проще на двух разных, причем если жмет человек, то для измерения лучше вообще использовать миллис(), т.к. точность не нужна сенсорную кнопку? а как он на нее будет ботинком нажимать? в чем проблема заморочиться с дребезгом? достаточно словить первый фронт, а потом 50-100мс не реагировать.