МИКРОКОНТРОЛЛЕР AVR - МИКРОКОНТРОЛЛЕР AVR

Для прямого обращения к пространству регистров ввода-вывода используются команды «in» и «out» (команда 36.3 и команда 36.4). Эти команды обеспечивают доступ к регистрам, начиная с нулевого адреса в пространстве ввода-вывода, а не с адреса $1F, с которого в пространстве данных AVR определены адреса регистров ввода-вывода.

Перечисленные выше команды — это практически все, что имеется в младших моделях AVR серии 1200 для пересылки данных. Остальные команды позволяют получить доступ к любой ячейке в пределах 64К пространства данных AVR, которое включает в себя РОН, регистры ввода-вывода и память SRAM, или к памяти программ, а не только к отдельным регистрам, как это было в предыдущих командах.

«Lds» и «sts» — четырехбайтовые команды, которые передают данные между РОН и пространством данных, используя прямую адресацию (команды 36.5 и 36.6). Можно также использовать косвенную адресацию, применяя команды «ld(d)» и «st(d)» (команды 36.7, 36.8, 36.9, 36.10, 36.11, 36.12, 36.13, 36.14). В командах 36.10 и 36.14 обращение к данным производится с помощью индексных регистров X, Y или Z.

При использовании команд «ld» и «st» можно увеличивать или уменьшать на единицу содержимое индексных регистров. Возможности такого предекремент и постинкремент позволяют эмулировать стек при помощи этих команд. Команды «ldd» и «std» очень полезны в случаях, когда индекс является указателем на структуру данных. В других главах я рассмотрел более детально, как можно использовать эти команды при работе со структурами данных в программном коде, генерированном компилятором.

Go to Top