PIC и mikroPascal

Работа с энергонезависимой памятью PIC-микроконтроллеров.

Микроконтроллеры PIC содержат на своем кристалле, помимо всего прочего, модуль энергонезависимой памяти EEPROM. Эта память может использоваться для хранения пользовательских констант, настроечных параметров и иной информации при отключении питания процессора. Работа с энергонезависимой памятью требует специального подхода, если не использовать готовые функции. MikroPascal содержит специализированную библиотеку, значительно упрощающую работу с EEPROM.
Считыванию и особенно записи данных в EEPROM посвящен целый раздел документации микроконтроллеров. Напротив mikroPascal предлагает всего две функции: EEPROM_Read и EEPROM_Write. Подключить их можно добавив галочку напротив библиотеки EEPROM в Library Manager. 
 

Процедура записи 

Формат команды записи следующий:
procedure EEPROM_Write(Address; Data); 
В качестве аргументов выступают значение адреса ячейки памяти - Adress и непосредственно сами данные, которые должны быть загружены в эту ячейку - Data. Для большинства контроллеров серии PIC16 они оба должны иметь тип - byte. Для записи в память достаточно указать номер ячейки и данные, которые туда должны быть внесены:
EEPROM_WRITE(0x02,0xAA); -  число 170d в ячейку с номером 2.
При вызове данной процедуры компилятор отключает все прерывания, путем сброса бита GIE в регистре INTCON. Это необходимо для корректного выполнения записи. По завершении процедуры записи, бит GIE переводится компилятором в исходное состояние.
 
 

Функция чтения

Функция чтения данных возвращает число, записанное в ячейку памяти с каким-либо адресом:
function EEPROM_Read(Address); 
Формат значения Adress и формат возвращаемого значения зависят от типа микроконтроллера и для простых моделей соответствуют типу byte.
a1:=EEPROM_Read(0x02); - переменной a1 присваивается значение из ячейки с адресом 2.
Несмотря на высокоуровневую реализацию чтения и записи при работе с реальными микроконтроллерами следует соблюдать специальный временной интервал в 20мс между вызовами функций записи и чтения. Это связано с физическими особенностями работы EEPROM. При нарушении этого правила, чтение непосредственно после записи может вернуть неопределенный результат.
 

You have no rights to post comments