Как стать программистом Как устроен компьютер. Что такое программа. Как написать свою программу. И многое другое узнаете вы из этой книги. Получить бесплатно! |
Память ввода-вывода
Микроконтроллеры / Для начинающих / Архитектура /Что нужно для того, чтобы стать профессиональным разработчиком программ для микроконтроллеров и выйти на такой уровень мастерства, который позволит с лёгкостью найти и устроиться на работу с высокой зарплатой (средняя зарплата программиста микроконтроллеров по России на начало 2017 года составляет 80 000 рублей). Подробнее... |
Определение пространства ввода-вывода ATtiny13A показано в разделе “Сводка по регистрам” на стр. 158 оригинальной документации. В этой статье не будем приводить их все, а только разберёмся с общими понятиями.
Память ввода-вывода (в русскоязычной литературе обычно говорят “область ввода-вывода”) содержит все регистры, которые используются для программирования, управления, а также для сигнализации обо всех периферийных функциях микроконтроллеров AVR. Эти регистры содержат, например, указатель стека, маски прерываний, регистры управления таймерами и т.п. То есть все устройства ввода-вывода и периферийные устройства ATtiny13A размещаются в области ввода-вывода.
Доступ к области ввода-вывода можно получить инструкциями LD/LDS/LDD и ST/STS/STD, перенося данные между 32 рабочими регистрами общего назначения и областью ввода-вывода (I/O). Регистры ввода-вывода в диапазоне адресов 0x00...0x1F доступны напрямую с помощью инструкций SBI и CBI. В этих регистрах значение отдельных битов можно проверить с помощью инструкций SBIS и SBIC. Дополнительные сведения см. описании набора инструкций.
При использовании специальных команд ввода-вывода IN и OUT (предпочтительный вариант для доступа к регистрам ввода-вывода) необходимо использовать адреса ввода-вывода 0x00...0x3F. Команда OUT выводит один байт в регистр ввода-вывода из какого-либо регистра общего назначения. Команда IN считывает один байт из регистра ввода-вывода и помещает его в какой-либо регистр общего назначения.
При адресации регистров ввода-вывода в качестве пространства данных с помощью инструкций LD и ST к этим адресам необходимо добавить 0x20.
Для совместимости с будущими устройствами в зарезервированные биты должны быть записаны нули, если это возможно. Зарезервированные адреса памяти ввода-вывода никогда не должны записываться.
Некоторые флаги состояния (Status Flags) сбрасываются путем записи в них логической единицы. Обратите внимание, что, в отличие от большинства других моделей AVR, инструкции CBI и SBI будут работать только с указанным битом, и поэтому могут использоваться в регистрах, содержащих такие флаги состояния. Инструкции CBI и SBI работают только с регистрами от 0x00 до 0x1F.
В некоторых других типах микроконтроллеров портами ввода-вывода называется то, что в AVR называется регистрами ввода-вывода. Смещение понятий произошло потому, что в AVR для обмена данными используются довольно сложные схемы, имеющие разные режимы работы, а также возможность изменять программно направление передачи данных. Именно эти схемы и получили в AVR название портов ввода-вывода.
Простые же регистры, которые служат для связи центрального процессора с периферийными устройствами получили более соответствующее их назначению название: регистры ввода-вывода.
Как было сказано выше, номера регистров могут иметь значения от 0x00 до 0x3F. То есть наибольшее возможное количество регистров ввода-вывода равно 64.
Каждому регистру ввода-вывода соответствует своя ячейка в ОЗУ. и действительное количество регистров ввода-вывода почти всегда намного меньше их наибольшего возможного количества (намного меньше, чем 64). Однако область памяти ввода-вывода всегда используется только для ввода-вывода.
Если регистр существует, то существует и соответствующая ячейка памяти. Остальные ячейки памяти в этой области ОЗУ просто отсутствуют.
Каждый регистр ввода-вывода, кроме номера, имеет уникальное имя.
Регистры управления вводом-выводом и периферийными устройствами будут описаны в следующих разделах.
Вступить в группу "Основы программирования"
Подписаться на RUTUBE-канал Подписаться на Дзен-канал Подписаться на рассылки по программированию |
Микроконтроллеры для ЧАЙНИКОВ
Бесплатная рассылка о микроконтроллерах. Рассылка содержит как бесплатную информацию для начинающих, так и ссылки на платные продукты (книги, видеокурсы и др.) для тех, кто захочет вникнуть в тему более глубоко. Подробнее... |