Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
5_Таймеры и т.д.doc
Скачиваний:
7
Добавлен:
01.04.2025
Размер:
83 Кб
Скачать
☆

9. Функции для сохранения данных в eeprom

Имя Функции

Описание

WriteEEP

Записывать 1 байт в EEPROM

ReadEEP

Считывать 1 байт из EEPROM

EnableEEP

Активизировать EEPROM,

так чтобы можно было туда записывать

ProtectEEP

Установить EEPROM в режим защиты от записи

Использование памяти EEPROM

Модули 7188 имеют 2 Кб памяти EEPROM. Они организованы как 8 блоков, каждый из них 256 байт. Таким образом, всего 2048 байтов. В обычном состоянии EEPROM находится в защищенном состоянии от записи. Перед записью надо вызывать функцию EnableEEP, для снятия защиты от записи.

Например, если пользователь хочет записывать данных на EEPROM в блок 1 и по адресу 10, то программа выглядит так:

int data = 0x55, data2;

EnableEEP( );

WriteEEP(1, 10, data);

ProtectEEP( );

data2 = ReadEEP(1,10); //Теперь data2 = data = 0x55

Если пользователь хочет записывать тип integer на EEPROM, то он должен вызывать функцию WriteEEP дважды. Только таким образом можно записывать данных в EEPROM.

10. Функции для сохранения данных в nvram

Модули 7188 имеют 31 байт памяти NVRAM (энерго-незхависимая память). Пользователь может использовать функций ReadNVRAM - для чтения одного байта и функции WriteNVRAM – для записи одного байта. Если пользователь хочет записывать данные на NVRAM по адресу 0, то программа записи-чтения выглядит так:

int data = 0x55, data2; // описание переменных

WriteNVRAM(0, data);

data2 = ReadNVRAM(0); //Теперь data2 = data = 0x55

Если пользователь хочет записывать целое число (2 байта) на NVRAM, то программа выглядит так:

int data = 0xAA55, data2; // описание переменных

char *dataptr = (char*) &data;

WriteNVRAM(0, *dataptr); //Запись младшего байта

WriteNVRAM(1, *(dataptr+1)); //Запись старшего байта

dataptr = (char*) &data2;

*dataptr = ReadNVRAM(0); //Считывание младшего байта

*(dataptr+1) = ReadNVRAM(1); //Считывание старшего байта

//Теперь data2 = 0xAA55

8. Служебные функции

1. int Is7188e (void); - проверка, запущена ли программа в контроллере 7188E. Если программа запущена, то эта функция дополнительно контролирует размер флэш памяти.

Возвращаемое значение:

0 – если программа не запущена:

256 или 512 – программа запущена в контроллере 7188e и размер флэш-памяти 256 или 512 Кб.

2. extern char hex_to_ascii[16]; - является массивом символов размером 16 байт, для преобразования чисел 0  15 на символы ‘0’  ‘F’. Входной параметр -индекс элемента массива, возвращаемое значение – 16-ичные цифры ‘0’  ‘F’.

3. int ascii_to_hex (char ascii); - преобразует символы ‘0’  ‘F’ на значения 0, 1, . . ., 15.

10

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]