цифровая электроника
вычислительная техника
встраиваемые системы

 

Радиомодуль NRF24LE1 и энергонезависимая память EEPROM

Автор: Mike(admin) от 4-12-2016, 08:51

Энергонезависимая память или EEPROM хороша тем, что позволяет хранить информацию даже при полностью выключенном устройстве. Это является полезной особенностью в случаях, когда нужно сохранить, а потом в случае чего восстановить какие-либо настроечные параметры системы. Конечно, у EEPROM имеются некоторые недостатки вроде малого объема и ограниченного количества циклов записи, но она ценна именно тем, что позволяет впоследствии восстановить данные даже после полного исчезновения питания.


Радиомодуль NRF24LE1 и энергонезависимая память EEPROM

Радиомодули NRF24LE1 также имеют энергонезависимую память. И в этом материале будет показано, как с ней работать.


В NRF24LE1 имеется 1.5 КБ памяти EEPROM. Работа с памятью осуществляется преимущественно с помощью четырех функций, речь о которых пойдет ниже.


Функцией для записи одного байта в энергонезависимую память является lib_eeprom_byte_write(). В качестве аргумента она принимает только 8-битный адрес и один байт (8 бит) данных. Для записи ряда байтов используется функция lib_eeprom_bytes_write(). Она принимает 8-битный адрес, 8-битный указатель на поле данных и 8-битную переменную, в которой записано количество байтов для записи.


Чтение байта данных организуется с помощью функции lib_eeprom_byte_read(). Она возвращает 8 бит данных при чтении из 8-битного адреса, указанного в качестве аргумента. А несколько байтов можно прочитать, используя функцию lib_eeprom_bytes_read(). Она не возвращает какого-либо значения сама по себе, поскольку в качестве аргумента она принимает 8-битный адрес, куда нужно будет записать прочтенные данные, 8-битный указатель поля записанных в памяти байтов и 8-битную переменную, в которой записано количество байтов для чтения.


Для понимания работы энергонезависимой памяти EEPROM в NRF24LE1 продемонстрируем несложный пример. Сначала мы запишем данные в EEPROM, затем перезагрузим модуль и проверим, прочитав эти данные из EEPROM. Схема и код проекта представлены ниже.


Радиомодуль NRF24LE1 и энергонезависимая память EEPROM




#include "reg24le1.h"
#include "lib_eeprom.h"
#include "hal_delay.h" 
 
 
void main()
{
P1DIR = 0; // настраиваем Порт 1 на выход
 
P1 = 0; // все линии Порта 1 в низкий лог. уровень
 
P1 = lib_eeprom_byte_read(0x00); // загружаем 8 бит данных из EEPROM по адресу 0x00
delay_ms(2000); // задержка 2 секунды
 
while(1) // бесконечный цикл
{
 
P10 = 0; // линия 0 Порта 1 в низкий лог. уровень
P11 = 0; // линия 1 Порта 1 в низкий лог. уровень
lib_eeprom_byte_write(0x00, P1); // записываем данные регистра P1 в EEPROM
delay_ms(2000); // задержка 2 секунды
lib_eeprom_byte_write(0x00, P1); // записываем данные регистра P1 в EEPROM
P10 = 1; // линия 0 Порта 1 в высокий лог. уровень
P11 = 0; // линия 1 Порта 1 в низкий лог. уровень
lib_eeprom_byte_write(0x00, P1); // записываем данные регистра P1 в EEPROM
delay_ms(2000); // задержка 2 секунды
P10 = 0; // линия 0 Порта 1 в низкий лог. уровень
P11 = 1; // линия 1 Порта 1 в высокий лог. уровень
lib_eeprom_byte_write(0x00, P1); // записываем данные регистра P1 в EEPROM
delay_ms(2000); // задержка 2 секунды
P10 = 1; // линия 0 Порта 1 в высокий лог. уровень
P11 = 1; // линия 1 Порта 1 в высокий лог. уровень
lib_eeprom_byte_write(0x00, P1); // записываем данные регистра P1 в EEPROM
delay_ms(2000); // задержка 2 секунды
 
}
}



© digitrode.ru


Теги: NRF24LE1, EEPROM



Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

Оставить комментарий