@Dmitry81923

Как максимально простым способом подать напряжение на 7 пинов поочерёдно?

Здравствуйте.
В общем, изучаю работу AVR на ассемблере. Вот, допустим, мне нужно сделать sbi на каждый порт. Каким самым лёгким способом можно так сделать?
Вот пример с ошибкой, который показывает мою цель
ldi       r16, 0x0
loopPortD:
                    sbi       0x12, r16 ; Тут ошибка ; Подать напряжение на PDx(0-7)
                    inc       r16
                    cpi       r16, 0x7
                    brne      loopPortD

Важно, чтобы было поочерёдно (просто подать на все 7 пинов - не то, что нужно)

UPD: Я знаю, что sbi принимает константу. Я имею ввиду, чтобы сделать на 7 пинов - нужно 7 вызовов этого sbi. А как сделать проще? С помощью цикла? Передать туда регистр как-то можно?
  • Вопрос задан
  • 124 просмотра
Решения вопроса 1
@evgeniy_lm
ldi r16, 1
loopPortD:
out PORTD, r16
; тут возможно нужна пауза
lsl r16
brcc loopPortD
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@VT100
Embedded hardware & software.
Вторым операндом sbi является константа.
www.gaw.ru/html.cgi/txt/doc/micros/avr/asm/sbi.htm
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы