Цитата(mcheb @ May 24 2015, 12:11)

А с какими регистрами может работать команда com ? Может быть, в этом причина?
Спасибо откликнувшимся, да действительно в этом причина была. Вот так получилось, через промежуточный регистр:
; Инвертируем регистр таймера TCNT0 через считывание - инверсию -обратную запись с помощью промежуточного регистра
clr temp_inv
in temp_inv,TCNT0 ; Переписываем из регистра (счётчика) таймера в промежуточный регист
com temp_inv ; Инвертируем побитно в промежуточном регистре
out TCNT0,temp_inv ; Записываем обратно в таймер инвертированное значения
Ну и потом запускаю заново таймер и дальше идёт программа.
Оказывается этот регистр (счётчик) TCNT0 не регистр вовсе, а порт получается ? Потому что с ним команда in прошла, которая для портов ввода-вывода действует ?
А это в документации и не отражено нигде вроде бы ....
Цитата(Xenia @ May 24 2015, 12:41)

А зачем вы это делаете? Если вы работаете с таймером 0 по прерыванию (переполнение), то в TCNT0 надо константу записывать, а не инверсию ему делать.
Так задача поставлена. Надо сначала интервал в таймере накопить, потом его считать оттуда, а потом в течение этого интервала нечто выполнять. Поэтому эту константу для записи нужно из этого-же таймера и доставать.
Сообщение отредактировал esr - May 24 2015, 16:39