Хранение данных в ОЗУ

В проектируемом измерителе для всех операций переменных‑регистров не хватит, и часть данных придется хранить в ОЗУ (SRAM). Познакомимся с общими принципами обращения к ячейкам этой памяти.

Для чтения и записи SRAM предназначены регистры х, y и z – т. е. пары r27:r26, r29:r28 и r31:r30 , которые по отдельности еще именуют XH: XL, YH: YL, ZH: ZL – в том же порядке (т. е. старшим в каждой паре служит регистр с большим номером). Если обмен данными производится между памятью и другим регистром общего назначения, то достаточно задействовать только одну из этих пар (любую), если же между областями памяти – целесообразно задействовать две. Независимо от того, какую из пар мы используем, чтение и запись происходят по идентичным схемам, меняются только имена регистров.

Покажем основной порядок действий при чтении из памяти в случае использования регистра z (r31:r30 ). Чтение одной ячейки с заданным адресом Address , коррекция ее значения и обратная запись производятся так:

 

 

Режимы с преддекрементом и постинкрементом используются, когда нужно прочесть/записать целый фрагмент из памяти. Схема действий аналогичная, только команды выглядят так:

 

 

Абсолютно аналогично выглядят команды чтения:

 

 

А вот как можно в цикле записать одно и то же значение из temp в 16 идущих подряд ячеек памяти, начиная с нулевого адреса старших 256 байтов памяти:

 

 

Напомним, что область пользовательского ОЗУ начинается с адреса $60 (9610). При попытке записать что‑то по меньшему адресу вы обязательно попадаете в какой‑то регистр, и результат окажется непредсказуем. Также не следует забывать о том, что последние адреса ОЗУ заняты под стек, который обязательно задействуется, если в программе применяются прерывания. Так, в ATmega8535 имеется 512 байтов SRAM, потому последний адрес (RAMEND ) будет равен 96 + 512 – 1 = 607 ($25F), но не стоит занимать адреса ОЗУ выше примерно 592 ($250).

 

 








Дата добавления: 2016-05-11; просмотров: 915;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.003 сек.