... при таком стиле программирования, от ассемблера "болит голова". Для начала "подчистите код"Coldheart писал(а):Я пока сосредоточен на вопросе... Почему на ногах PD5 и PD6 гуляют высокие уровни, и на PB0 постоянно логический 0 (при 20 Гц и при 20 Кгц)
1. используйте макросы - исходник будет более читаем
2. ставить комментарий после каждой строчки - перебор
3. по возможности вместо 0b00000xxx лучше использовать 0x.. или константы
4. разбейте код на логические участки (... или процедуры)
простой пример:
создаем макросы
Код: Выделить всё
.macro outi
ldi temp,@1
out @0,temp
.endm
.macro movi
ldi temp,@1
mov @0,temp
.endm Код: Выделить всё
.......
ldi temp,0b11101111;PD0-2 - выбор индикатора
out DDRD,temp; PD4-вход, остальные не используются
clr temp;Подтяжка выключена
out PortB,temp;Все выходы выключены
...
ldi temp,0b11111100;0
mov R0,temp
ldi temp,0b01100000;1
mov R1,temp
Код: Выделить всё
outi DDRD,0xEF
outi PortB,0x0
....
movi R0,0xFC
......


