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

Шаг 6. Осваиваем все возможности микроконтроллера ATtiny23 13 519 страницы» или в том случае, если команда SPM не выполнена в преде ­ лах отведенных ей четырех машинных циклов. На все время выполне ­ ния операции «Стирание страницы» работа центрального процессора приостанавливается. Бит 0 — SELFPRGEN: Разрешение автоматического программи ­ рования. Установка этого бита разрешает выполнение команды SPM в течение следующих четырех циклов тактового генератора. Если при этом одновременно записывается единица в один из битов СТРВ, RFLB, PGWRT или PGERS, то первая же команда SPM, поступившая не позднее, чем через четыре машинных цикла, будет выполнять одно из описанных выше специальных действий. Если установлен только бит SELFPRGEN, то команда SPM сохра ­ нит значение регистров R1:RO во временном буфере страницы, т. е. по адресу, на который указывает Z -указатель. Младше разряды Z -указателя игнорируются. Бит SELFPRGEN сбрасывается как авто ­ матически после завершения выполнения команды SPM, так и если не поступило ни одной команды SPM в пределах четырех машинных циклов после установки этого бита. При выполнении команд «Стирание страницы» и «Запись страницы» бит SELFPRGEN остается в единичном состоянии все время, пока опе ­ рация не закончена. Запись любой другой комбинации, кроме “ 10001 ” , “ 01001 ” , “ 00101 ” , “ 00011 ” или “ 00001 ” , в пять младших разрядов регистра SPMCSR не будет иметь никакого эффекта. Запись в EEPROM и работа с регистром SPMCSR Обратите внимание, что при записи в EEPROM блокируются все попытки перезаписи памяти программ. Чтение fuse -переключателей и битов блокировки также будет заблокировано. Поэтому рекомендуется при создании процедуры перепрограммирования программной памяти включать в нее проверку бита состояния EEPROM (бит EEWE регистра EECR). Перед записью команды в регистр SPMCSR необходимо убе ­ диться, что бит EEWE сброшен. Чтение состояния fuse -переключателей и битов блокировки программным путем При необходимости управляющая программа микроконтроллера может читать состояние всех fuse -переключателей, а также состояние битов блокировки. Для того, чтобы прочитать биты блокировки, необхо ­ димо загрузить в Z -указатель код 0x0001, затем установить биты RFLB и SELFPRGEN регистра SPMCSR в единицу.

RkJQdWJsaXNoZXIy MTExODQxMg==