Не могу считать значение порта AVR PINx? Не получается и все, все перепробовал все способы и Hi-Z.
Тестирую в протеус. Вот простейший код:
start:
ldi r16, pinb
rjmp start
В протеусе в регистре r16 значение всегда 16hex. Если читать другие порты то значения немного отличаются от порта В. Даже если на выводы подавать напряжение 5 Вольт все равно тоже самое значение 16hex.

21 Авг 2019 в 06:21
251 +1
1
Ответы
1

Вероятно, проблема может быть связана с неправильным использованием команды “ldi”. Для чтения значения порта в AVR микроконтроллерах используется команда “in” или “inp”.

Попробуйте изменить ваш код на следующий образ:

start:
in r16, PINB
rjmp start

Этот код должен корректно считывать значение порта PINB и сохранять его в регистре r16.

Если проблема все еще остается, то возможно дело в настройках симулятора или модели микроконтроллера в протеусе. Попробуйте проверить настройки и убедитесь, что они корректно сконфигурированы для работы с портами ввода-вывода.

20 Апр 2024 в 13:19
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир