небольшое уточнение )Adrift писал(а):а gvar2 - в RAM.
"подразумевает изначальное хранение во FLASH, и последующее копирование в SRAM после сброса RESET" (c)
небольшое уточнение )Adrift писал(а):а gvar2 - в RAM.
Adrift писал(а):линейный код находящий единичный бит за 6 тактов
Код: Выделить всё
cpi r0,2
brlo end
mov r1,r0
dec r1
and r0,r1
inc r0
Код: Выделить всё
ldi r16, 1
cp r0,r16
breq метка_имеем_единичный_бит=1
; здесь бит0 не равен "1"
Код: Выделить всё
tst r0
breq notSingleBit
mov r1,r0
dec r1
and r0,r1
brne notSingleBit
singleBit:да, R18 подставлял.. но не стал вдаваться в подробности)Adrift писал(а):потому код проверил shonty и он, видимо, просто подставил другой регистр,
Код: Выделить всё
mov r16,r0
subi r16,1
brcs notSingleBit
and r16,r0
brne notSingleBit
singleBit:Не контроль чётности, а вполне рабочий код. Как раз определяет количество битов больше чем 1.BOB51 писал(а):А то, что выше у Вас даст лишь контроль чётности, но не учитывает, что битов в проверяемом байте может быть больше, чем один.
Спасибо! Я "вкурил" наконец-то)))shonty писал(а):на примере, то вот так