|
Другого не придумывается на ночь глядя...
Вариант на Си:
if (a<0x80) {a <<= 1; PORTB &= ~0x01}
else {a = (a<<1)+1; PORTB |= 0x01}
Вариант на ассемблере:
lds r16,a
in r17,PORTB
andi r17,0xFE
add r16,r16
brcc L0
inc r16
ori r17,0x01
L0:
out PORTB,r17
sts a,r16
E-mail: info@telesys.ru