Запись
1. Поместить адрес в EEADR.
2. Поместить данные в EEDATA.
3. Установить бит WREN (2-й бит регистра EECON1) в 1 для переключения в режим записи.
4. Записать число h’55’ в EECON2.
5. Записать число h’AA’ в EECON2.
6. Начать цикл записи установкой бита WR (1-й бит регистра EECON1) в 1. Операция записи, которая, как правило, является достаточно редким событием, специально сделана такой запутанной, чтобы исключить случайное изменение EEPROM. На самом деле регистра EECON2 не существует, однако последовательная запись по его адресу значений Ь’55’и h’AA’ необходима для разблокирования EEPROM. Прерывания могут нарушить эту последовательность, поэтому, если они используются, их следует запретить. Длительность операции записи составляет около 50 мс, после ее завершения устанавливается 4-й бит регистра EECON1 (флаг EEIF), который может использоваться для
К EEPROM-памяти данных относятся следующие регистры (адреса указаны для модели PIC16F84):
∙ EEDATA (h’08’)
Этот регистр содержит данные адресованной ячейки EEPROM после операции чтения или же данные, которые будут записаны в EEPROM во время операции записи.
∙ EEADR (h’09’)
Этот регистр содержит адрес байта, к которому производится обращение, загружаемый перед началом операции чтения или записи.
∙ EECON1 (h’88’)
Этот регистр содержит следующие биты управления и состояния:
• Бит запуска операции чтения EEPROM.
• Бит разрешения операции записи.
• Бит запуска операции записи в EEPROM.
• Бит признака преждевременного завершения цикла записи.
• Бит признака нормального завершения цикла записи.
Более полную информацию можно получить из Рис. 15.2, приведенного на стр. 545.
∙ EECON2 (h’89’)
Этот управляющий регистр физически не существует, и при его чтении всегда возвращается нулевое значение. Указанный адрес используется для загрузки последовательности, разрешающей цикл записи. Последовательность состоит из двух чисел h’55’ и h’AA’, записываемых друг за другом.
Прерывания
Регистр управления прерываниями INTCON, расположенный по адресу h’0B’[79], содержит биты маски и статуса, управляющие реакцией микроконтроллера на прерывания. Использование этого регистра описывается в главе 7. Большинство периферийных устройств имеют собственные биты, относящиеся к прерываниям и расположенные в других управляющих регистрах (см., например, Рис. 7.5 на стр. 223).
Объясните, каким образом внедрение в схему блока выборки команд конвейера увеличивает производительность микроконтроллеров PIC. Предвидите ли вы какие-либо проблемы, связанные с поддержкой команд перехода (таких как goto), относительно структуры конвейера?
Решение
Наличие конвейера является обязательным условием для организации параллельной работы блока выборки и исполнительного блока. То есть для того, чтобы иметь возможность исполнять команду и одновременно с выборкой из памяти программ команды
Проблема, связанная с конвейером, вытекает из предположения, что команды программы будут исполняться последовательно, т. е. так, как они расположены в памяти программ. При этом команды, не удовлетворяющие этому условию и изменяющие содержимое счетчика команд, требуют очистки конвейера, с тем чтобы код адресованной команды оказался на вершине конвейера. Например, если командой к является команда goto