Есть линия по которой передается цифровой сигнал (данные в HEX), логическая 1 первые 3/4 периода +5V, вторые 1/4 0V. Период составляет 1/4 ms.
Имею тестовый код, который должен вести подсчет возрастающих фронтов.
Проблема в том, что код не успевает корректно считать.
Вместо 10 фронтов на выходе получаю 1.
Камень Atmega8A бегает на 16 мегагерц (фьюзы выставлены правильно, питание +5V).
Вывод результата в UART делаю по таймеру раз в ~2 сек.
Вопрос - почему код не успевает обрабатывать фронты?
Код: Выделить всё
for(;;){
while ((PINB & (1<<0))==0); // ждем передний фронт
while (PINB & (1<<0)); // ждем задний фронт
frontCount++;
}

