Микроконтроллер ATMEGA128A, отправляет серию команд с заданным интервалом, для чего использую таймер 1, режим - сброс при совпадении. Прерыванием не пользуюсь. Просто опрашиваю флаг OCF1A в TIFR. Сбрасываю его программно командой TIFR&=~(1<<OCF1A); Не сбрасывается!
И что существенно, программу я пишу не с нуля, а перевожу старый полностью рабочий проект с ассемблера на си.
В старой программе было:
Код
waittick1:
in r16,TIFR
sbrs r16,OCF1A
rjmp waittick1
cbr r16,OCF1A
out TIFR,r16
Это работает.
В новой программе:
Код
while((TIFR&(1<<OCF1A))==0);
TIFR&=~(1<<OCF1A);
Это почему то не работает!