Дальнейшие эксперименты показали, что, помимо RESET'а надо ещё отключить и последовательное программирование.
Но это ещё не всё.
После выполнения следующей последовательности:
1. Корректируем бит 3 (и другие, разумеется) в регистре R16 в "0"
2. Копируем порт DDRB в регистр R18. Бит 3 был настроен в "0"
3. Производим побитное XOR регистров R18 и R16 (с сохранением в R16). "0"+"0"="0"
4. Копируем регистр R16 в порт DDRB.
Код
andi R16,0b00010000
in R18,DDRB
eor R16,R18
out DDRB,R16
"0" почему-то становится "1", и порт, соответственно, переключается на выход.
Команда
Код
andi R18,0b00010000
после п.2 решает проблему, но хотелось бы понять, почему, в в/у пункте, вместо "0" считывается "1"?