Сборка на регистрах Arduino: IO

Вопрос: Какие регистры я использую для доступа к IO на Arduino Uno, когда я использую сборку для программирования?

Предыстория: Мне было интересно практиковать навыки ассемблерного языка на Arduino (я думал, что включить или выключить светодиоды легче, чем беспокоиться о консоли IO). Из предварительного поиска я обнаружил, что инструментальная цепочка AVR может использоваться для программирования Arduino. Тем не менее, я не совсем знаю, как найти соответствующие регистры для контактов IO.

11 голосов | спросил apnorton 12 FebruaryEurope/MoscowbWed, 12 Feb 2014 08:24:33 +0400000000amWed, 12 Feb 2014 08:24:33 +040014 2014, 08:24:33

2 ответа


8

Таблицы данных для микроконтроллеров AVR достаточно хороши для чтения. Просто Google для точного контроллера на вашем Arduino (например, ATmege328) и найдите «Полный» лист данных на веб-сайте atmel.com . Не загружайте «Сводка», это не включает в себя много информации. Загрузите таблицу данных с сайта atmel.com, это единственное место с самой последней документацией.

В базовом IO используются три регистра (см. главу «I /O-Ports»):

Где n - это идентификатор порта, буква в диапазоне от A, B, C, ... в зависимости от количества контактов IO вашего контроллера. Каждый бит в каждом регистре представляет собой один вывод GPIO (да, для полного понимания этого вам нужны базовые знания в двоичном формате).

  • DDR n , Data Direction Register: в основном конфигурирует вывод для ввода (0) или вывода (1).
  • PORT n , Регистр данных порта n: Когда контакт установлен как выходной, соответствующий бит переключает выходной вывод (1) или низкий (0). Когда он сконфигурирован как вход, это позволяет получить слабый нагрузочный резистор на выходном выводе.
  • ПИН n , Port n Input Register: Используйте этот регистр для чтения текущего уровня на выводе, который настроен как вход.
ответил jippie 12 FebruaryEurope/MoscowbWed, 12 Feb 2014 10:34:29 +0400000000amWed, 12 Feb 2014 10:34:29 +040014 2014, 10:34:29
1

Проверьте это: http://arduino.cc/ru/Reference/PortManipulation

Также: http://arduino.cc/ru/Hacking/PinMapping168

Что касается других портов и контактов, проверьте, разместите ли данные для своего контроллера, они действительно полезны людям, которые могут их понять! :)

ответил TheDoctor 12 FebruaryEurope/MoscowbWed, 12 Feb 2014 08:31:18 +0400000000amWed, 12 Feb 2014 08:31:18 +040014 2014, 08:31:18

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132