Цитата(Владивольт @ Jun 16 2015, 21:38)

Alternatively, OCF1A can be cleared by writing a logic one to its bit location
Правильно, все флаги (другого не помню) сбрасываются записью единицы в этот разряд.
Цитата(paskal @ Jun 16 2015, 21:01)

В старой программе было:
Код
waittick1:
in r16,TIFR
sbrs r16,OCF1A
rjmp waittick1
cbr r16,OCF1A
out TIFR,r16
Это работает.
А как у Вас работало в старой программе? В программе команда "cbr r16,OCF1A" записана неверно. Должно быть "cbr r16,(1<<OCF1A)" . Команда CBR делает сброс разрядов регистров в соотвестствии с маской, т.е. если в Вашем случае OCF1A это 6-й разряд (к примеру, не смотрел для Вашего МК), то маска будет выглядеть как 0b00000110 и сброс будет произведен для 1-го и 2-го разряда, а Ваш 6-й останется несброшенным. К тому же флаги брасываются установкой единицы. Сбрасывать прямым сбросом не пробовал. Зачем отступать от Datasheet?
Может в первой редакции программы все удачно сложилось и Вы не заметили неточности при написании программы?
Сообщение отредактировал Александр1 - Jun 17 2015, 06:48