Arduino:Библиотеки/EEPROM/get()
Материал из Онлайн справочника
< Arduino:Библиотеки | EEPROM
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.
Функция EEPROM.get()[1]
Считывает данные из EEPROM-памяти, но не напрямую, а через указание объекта (например, переменной), хранящего считываемое значение.
Синтаксис
EEPROM.get(address, data)
Параметры
address – участок EEPROM-памяти, с которого будет выполнено считывание. Значения начинаются с «0». Тип данных – int.
data – объект, значение которого нужно прочесть. Это может быть и примитивный тип данных (например, float), и пользовательский struct.
Что возвращает
Значение, записанное в объект, который находится по указанному адресу.
Пример
#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.write()
- EEPROM.read()
- EEPROM.update()
- EEPROM.put()