Белов, А.В. Микроконтроллеры AVR: от азов программирования до создания практических устройств

Шаг 6. Осваиваем все возможности микроконтроллера ATtiny23 13 515 Память программ перезаписывается постранично. При этом для хранения страницы используется специальный временный буфер. Для управления всем этим процессом должна быть создана и записана в про ­ граммную память микроконтроллера специальная управляющая про ­ грамма. Эта программа должна сначала получить новые данные и записать их в буфер. Перед программированием страницы программной памяти старое содержимое этой страницы должно быть стерто. Причем запол ­ нение буфера можно производить как перед подачей команды «Стереть страницу», так и в промежутке между командами «Стереть страницу» и «Записать страницу». То есть существует два способа записи страницы. Первый способ. Заполнение буфера перед стиранием страницы: ♦ заполнить временный буфер страницы; ♦ выполнить стирание страницы; ♦ выполнить запись страницы. Второй способ. Заполнение буфера после стирания страницы: ♦ выполнить стирание страницы; ♦ заполнить временный буфер страницы; ♦ выполнить запись страницы. Если нужно изменить только часть страницы, то необходимо сна ­ чала сохранить текущее ее содержимое во временном буфере, произвести стирание этой страницы, а затем модифицировать содержимое буфера и перезапись страницу измененными данными. При этом удобнее вос ­ пользоваться способом номер 1, так как при втором способе содержимое страницы сразу стирается. Все операции со страницами программной памяти (стирание, запись, загрузка страницы) выполняются при помощи команды SPM. Операции стирания и записи — это групповые операции. То есть для стирания (записи) целой страницы подается всего одна команда. Это полезно запомнить. Загрузка страницы — это модификация отдельных ячеек времен ­ ного буфера страницы. Модификация производится при помощи той же команды SPM, но использует свободный доступ к каждой ячейке буфера. Каждая ячейка буфера представляет собой шестнадцатиразрядное слово данных и соответствует одной ячейке программной памяти. Команда SPM использует регистровую пару Z в качестве указателя адреса, регистр SPMCSR для задания вида операции и регистры Rl, R0 для передачи слова данных в ячейку временного буфера страницы.

RkJQdWJsaXNoZXIy MTExODQxMg==