#assembly #avr #atmega
Вопрос:
Я хочу активировать 23-контактный разъем, чтобы зажечь светодиод
; Reset Vector rjmp Start Start: ldi r16, 0x00 ;Cargar el registro de trabajo 16 al valor 0 out DDRB, r16 ;Asignar al puerto B el valor del registro 16 ldi r16, 0xFF ;Carga el registro de trabajo 16, el valor FF out DDRC, r16 ;Asignar al puerto C el valor del registro 16 Loop: in r16, PINB ;Lee puerto B out PORTC, r16 ;Escribe en puerto C lo leído ldi PORTC, 1 rjmp Loop
Комментарии:
1. Для какого чипа вы программируете?
2. На схеме написано ATmega328P.
Ответ №1:
Если вы хотите включить вывод PC0 (вывод 23), вам нужно установить бит #0 как DDRC
в (который включает драйвер вывода на выводе), так и PORTC
(который выбирает высокий уровень вывода). Вы можете либо использовать OUT
команду для записи 8-битного значения в регистр ввода-вывода:
ldi r16, 0x01 out PORTC, r16 out DDRC, r16
или вы можете использовать sbi
инструкцию для установки бита в одном из первых 32 регистров ввода-вывода:
sbi PORTC, 0 sbi DDRC, 0