Микроконтроллер на платах Arduino и Genuino имеют постоянную EEPROM: память, значения которой сохраняются при выключении питания платы (по принципу жесткого диска).
Цель этого примера — показать, что методы put и get производят другое действие, чем write и read, которые работают с отдельными байтами. Считывает данные из EEPROM-памяти, но не напрямую, а через указание объекта (например, переменной), хранящего считываемое значение. Возвращает значение, записанное в объект, который находится по указанному адресу.
Требуемое оборудование
Плата Arduino или Genuino
Требуемая схема
Нет схемы
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
#include <EEPROM.h> struct MyObject{ float field1; byte field2; char name[10]; }; void setup(){ float f = 0.00f; // переменная для хранения данных, считанных из EEPROM-памяти int eeAddress = 0; // адрес в EEPROM-памяти, с которого будет начато считывание Serial.begin( 9600 ); while (!Serial) { ; // ждем подключения последовательного порта (нужно только для Leonardo) } Serial.print( "Read float from EEPROM: " ); // "Данные типа float, считанные из EEPROM-памяти: " // считываем данные типа float из EEPROM-памяти, находящиеся по адресу «eeAddress»: EEPROM.get( eeAddress, f ); Serial.println( f, 3 ); // если по указанному адресу находятся некорректные float-данные, эта функция может вернуть запись «ovf, nan» // функцию get() можно использовать и для пользовательских структур: eeAddress = sizeof(float); // перемещаемся к участку EEPROM-памяти, находящемуся вслед за тем, где хранится переменная «f» MyObject customVar; // переменная для значения, считанного из пользовательского объекта EEPROM.get( eeAddress, customVar ); Serial.println( "Read custom object from EEPROM: " ); // "Данные из пользовательского объекта, считанные из EEPROM-памяти: " Serial.println( customVar.field1 ); Serial.println( customVar.field2 ); Serial.println( customVar.name ); } void loop(){ /* цикл loop() оставим пустым */ } |
Смотрите также:
EEPROM Clear: очистить байты в EEPROM.
EEPROM Read: Чтение EEPROM и отправка его значений на компьютер.
EEPROM Write: Сохраняет значения с аналогового входа в EEPROM.
EEPROM Crc: Вычисляет CRC содержимого EEPROM, как если бы это был массив.
EEPROM Iteration: Несколько разных способов пройти через пространство памяти EEPROM.
EEPROM Put: Запись данных в EEPROM разными способами.
EEPROM Update: Запись в EEPROM данных, считанных с 0-ого аналогового контакта (A0). Запись осуществляется только в том случае, если новые данные отличаются от предыдущих – это позволяет увеличить срок службы EEPROM.