Arduino:Библиотеки/EEPROM/get()

Материал из Онлайн справочника
Перейти к навигации Перейти к поиску

{{#setlogo:ArduinoCommunityLogo.png}}

Перевод: Максим Кузьмин (Cubewriter) Контакты:</br>* Skype: cubewriter</br>* E-mail: cubewriter@gmail.com</br>* Максим Кузьмин на freelance.ru
Проверка/Оформление/Редактирование: Мякишев Е.А.

Функция EEPROM.get()[1]

Считывает данные из EEPROM-памяти, но не напрямую, а через указание объекта (например, переменной), хранящего считываемое значение.

Синтаксис

EEPROM.get(address, data)

Параметры

address  участок EEPROM-памяти, с которого будет  выполнено считывание. Значения начинаются с «0». Тип данных  int.
data  объект, значение которого нужно прочесть. Это может быть и примитивный тип данных (например, float), и пользовательский struct.

Что возвращает

Значение, записанное в объект, который находится по указанному адресу.

Пример

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

См.также

  1. EEPROM.write()
  2. EEPROM.read()
  3. EEPROM.update()
  4. EEPROM.put()

Внешние ссылки