До сих пор мы говорили о портах ввода вывода, и вдруг, неожиданный поворот - говорим уже о регистрах. Как так? Почему порты превратились в регистры?
А дело в том, что по сути это одно и то же. Только применительно к микроконтроллерам AVR в определённых случаях это может называться регистрами, а не портами.
Смещение понятий произошло потому, что в микроконтроллерах AVR для обмена данными с внешним миром применяются довольно сложные схемы, которые имеют несколько режимов работы и возможность выбора программным путём направления передачи данных (одна и та же ножка микросхемы может работать и как вход, и как выход).
И вот это называется портами ввода-вывода.
А простые регистры, которые используются для связи центрального процессора с периферийными устройствами самой микросхемы, имеют более подходящее для этого название “регистры ввода-вывода”.
Регистры ввода-вывода позволяют обмениваться данными со встроенными устройствами (а не с внешними, как порты ввода-вывода), такими как таймеры, компараторы, АЦП и т.п.
Каждый регистр ввода-вывода имеет свой номер - адрес в адресном пространстве ввода-вывода. В семействе AVR эти номера могут иметь значения в диапазоне $00…$3F. Получается, что наибольшее возможное количество регистров ввода-вывода может быть 64. Однако на самом деле их обычно меньше, и разные микроконтроллеры имеют разный набор регистров.
Каждый регистр ввода-вывода кроме номера (адреса) имеет имя. Эти имена уникальны, и придуманы лишь для удобства программирования. Например, в микроконтроллере семейства Tiny регистр $1E предназначен для управления EEPROM и имеет имя EEAR. Второй регистр для управления EEPROM имеет адрес $1D и имя EEDR.
Для разных микроконтроллеров регистры с одинаковым назначением обычно имеют одинаковые имена. А вот адреса при этом могут отличаться. Именно поэтому и были придуманы имена - чтобы не запутаться в адресах, работая с разными микроконтроллерами.
Ну и напоследок скажу, что вы можете встретить иногда аббревиатуру РВВ - это сокращение от Регистры Ввода-Вывода.
На этом всё. Подписывайтесь на канал, чтобы ничего не пропустить…