Код: Выделить всё
ldi r16, 55
out PORTD, r16
Label:
in r16, PINC
sts VAL, r16
sbic PINA,0
rjmp PC-3
rjmp Label // В этом случае никаких ошибок не будет.
Код: Выделить всё
ldi r16, 55
out PORTD, r16
Label:
in r16, PINC
sts VAL, r16
sbic PINA,0
rjmp PC-3
rjmp Label // В этом случае никаких ошибок не будет.
Код: Выделить всё
in temp1,PIND
andi temp1,0xF0
andi temp, 0x0F
or temp1,temp
out PORTD,temp1
Demiurg писал(а):andi temp, 0x0F
СКАЗОЧНИК писал(а):Есть переменная, у которой старший полубайт нули, а младший полубайт имеет некое значение.
И я сразу не обратил внимание. Устал, тупо скопировал, добавил и отправил.Z_h_e писал(а):Тогда in temp1,PIND не стоит использовать, используйте in temp1,PORTD. А то будете включать выключать подтяжку в зависимости от нажатия кнопок.
Код: Выделить всё
//Переменная в r17
//R16 в старшем полубайте старший полубайт порта
andi r16,0xF0
or r16,r17
out PortD,r16Код: Выделить всё
.def R_KEY=R2
.def R_OUT=R1
ISR_Y:
; В R_OUT предварительно подготовленные данные x
OUT PORTB,R_OUT ; R_OUT=0b1111xxxx
IN R_KEY,PINB ; приём данных с кнопок
;*****
;*****
;*****
RETI