Не, я вот про что: SBI - команда типа Чтение-Модификация-Запись. Это примерно то же самое, что операция |=. Этого для флагов таймера (и для внешних прерываний по фронтам) АВР делать не рекомендуется, т.к. если например встал флаг у соседнего таймера 1(в том же регистре), то Вы, желая сбросить флаг таймера 0, командой |= или SBI прочитаете этот флаг таймера1 и его же единичеой и угробите. Потом ищи-свищи его.
Пользуйтесь только командой простого присвоения
ldi r16,(1<
out TIFR,r16 или в Си:
TIFR=(1<
Составить ответ | Вернуться на конференцию
Ответы