- •4. Функции для 5-цифрового жкд
- •5. Функции для светодиода
- •6. Функция для задержки времени
- •7. Функции таймера
- •Функции для работы с простым таймером
- •Функции для стоповых таймеров
- •Функции для таймеров с обратным счетом
- •Функции для пользовательских таймеров
- •Пример 1. Демонстрация использования таймерных функций для мигания жкд через каждые 0.5 сек.
- •Использование сторожевого таймера
- •8. Использование флэш-памяти контроллера I-7188ead
- •9. Функции для сохранения данных в eeprom
- •10. Функции для сохранения данных в nvram
- •8. Служебные функции
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.
