Arduino:Библиотеки/EEPROM/put(): различия между версиями
Материал из Онлайн справочника
< Arduino:Библиотеки | EEPROM
Myagkij (обсуждение | вклад) Нет описания правки |
Нет описания правки |
||
(не показаны 4 промежуточные версии 2 участников) | |||
Строка 6: | Строка 6: | ||
=Функция EEPROM.put()<ref>[https://www.arduino.cc/en/Reference/EEPROMPut Arduino - EEPROMPut]</ref>= | =Функция EEPROM.put()<ref>[https://www.arduino.cc/en/Reference/EEPROMPut Arduino - EEPROMPut]</ref>= | ||
Записывает данные в | Записывает данные в [[EEPROM]]-память, но не напрямую, а через указание объекта (например, переменной), хранящего записываемое значение. | ||
== Синтаксис == | == Синтаксис == | ||
Строка 16: | Строка 16: | ||
== Параметры == | == Параметры == | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
address – участок EEPROM-памяти, куда будет выполнена запись. Значения начинаются с «0». Тип данных – int. | address – участок EEPROM-памяти, куда будет выполнена запись. Значения начинаются с «0». Тип данных – int. | ||
data – объект, значение которого нужно прочесть. Это может быть и примитивный тип данных (например, float), и пользовательский struct. | data – объект, значение которого нужно прочесть. Это может быть и примитивный тип данных (например, float), и пользовательский struct. | ||
Строка 31: | Строка 31: | ||
== Пример == | == Пример == | ||
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS | <syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS"> | ||
/*** | /*** | ||
Пример eeprom_put | Пример eeprom_put | ||
Строка 98: | Строка 98: | ||
# EEPROM.update() | # EEPROM.update() | ||
# EEPROM.get() | # EEPROM.get() | ||
=Внешние ссылки= | =Внешние ссылки= | ||
<references /> | <references /> | ||
{{Навигационная таблица/Портал/Arduino}} | |||
[[Категория:Стандартные библиотеки]] | [[Категория:Стандартные библиотеки]] |
Текущая версия от 12:21, 8 июля 2023
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.
Функция EEPROM.put()[1]
Записывает данные в EEPROM-память, но не напрямую, а через указание объекта (например, переменной), хранящего записываемое значение.
Синтаксис
EEPROM.put(address, data)
Параметры
address – участок EEPROM-памяти, куда будет выполнена запись. Значения начинаются с «0». Тип данных – int.
data – объект, значение которого нужно прочесть. Это может быть и примитивный тип данных (например, float), и пользовательский struct.
Что возвращает
Отсылку к объекту, где хранятся обработанные данные.
Примечание
Эта функция работает по принципу EEPROM.update(). То есть если записываемое значение идентично тому, что уже хранится в указанном участке EEPROM-памяти, то запись выполнена не будет.
Пример
/***
Пример eeprom_put
Это пример, демонстрирующий работу функции EEPROM.put().
Кроме того, этот скетч подготавливает EEPROM-данные
для скетча-примера eeprom_get.
Обратите внимание, что функция EEPROM.put()
работает по тому же принципу, что и EEPROM.update().
То есть запись будет выполнена лишь в том случае,
если новое значение отличается от предыдущего.
Автор – Кристофер Эндрюс (Christopher Andrews), 2015 год.
Выпущено под лицензией MIT.
***/
#include <EEPROM.h>
struct MyObject {
float field1;
byte field2;
char name[10];
};
void setup() {
Serial.begin(9600);
while (!Serial) {
; // ждем подключения последовательного порта (нужно только для моделей Arduino со штатным USB-портом)
}
float f = 123.456f; // переменная для записи в EEPROM-память
int eeAddress = 0; // участок EEPROM-памяти, куда будут записаны данные
// теперь одна простая функция, где первый аргумент – это адрес, а второй – объект:
EEPROM.put(eeAddress, f);
Serial.println("Written float data type!"); // "float-данные записаны!"
/** функцию EEPROM.put() можно использовать и для пользовательских структур. **/
// данные, которые будут записаны:
MyObject customVar = {
3.14f,
65,
"Working!"
}; // "Работает!"
eeAddress += sizeof(float); // перемещаемся к участку EEPROM-памяти, находящемуся вслед за тем, где хранится переменная «f»
EEPROM.put(eeAddress, customVar);
Serial.print("Written custom data type! \n\nView the example sketch eeprom_get to see how you can retrieve the values!"); // "Данные пользовательского типа записаны! \n\nО том, как извлечь эти данные, смотрите в скетче-примере eeprom_get"
}
void loop() {
/* пустой цикл */
}
См.также
- EEPROM.read()
- EEPROM.write()
- EEPROM.update()
- EEPROM.get()
Внешние ссылки
Arduino продукты | |
---|---|
Начальный уровень | Arduino Uno • Arduino Leonardo • Arduino 101 • Arduino Robot • Arduino Esplora • Arduino Micro • Arduino Nano • Arduino Mini • Arduino Starter Kit • Arduino Basic Kit • MKR2UNO • TFT-дисплей Arduino |
Продвинутые функции | Arduino Mega 2560 • Arduino Zero • Arduino Due • Arduino Mega ADK • Arduino Pro • Arduino Motor Shield • Arduino USB Host Shield • Arduino Proto Shield • MKR Proto Shield • MKR Proto Large Shield • Arduino ISP • Arduino USB 2 Serial Micro • Arduino Mini USB Serial Adapter |
Интернет вещей | Arduino Yun • Arduino Ethernet • Arduino MKR1000 • Arduino WiFi 101 Shield • Arduino GSM Shield V2 • Arduino WiFi Shield • Arduino Wireless SD Shield • Arduino Wireless Proto Shield • Arduino Ethernet Shield V2 • Arduino Yun Shield • Arduino MKR1000 Bundle |
Носимые устройства | Arduino Gemma • Lilypad Arduino Simple • Lilypad Arduino Main Board • Lilypad Arduino USB • LilyPad Arduino SimpleSnap |
3D-печать | Arduino Materia 101 |
Устаревшие устройства | - |
Примеры Arduino | |
---|---|
Стандартные функции | |
Основы |
|
Цифровой сигнал |
|
Аналоговый сигнал |
|
Связь |
|
Управляющие структуры |
|
Датчики |
|
Дисплей |
Примеры, объясняющие основы управления дисплеем:
|
Строки |
|
USB (для Leonardo, Micro и Due плат) |
В этой секции имеют место примеры, которые демонстрируют использование библиотек, уникальных для плат Leonardo, Micro и Due.
|
Клавиатура |
|
Мышь |
|
Разное |
Категории:
- Страницы, использующие повторяющиеся аргументы в вызовах шаблонов
- Справочник языка Arduino
- Arduino
- Перевод от Сubewriter
- Проверка:myagkij
- Оформление:myagkij
- Редактирование:myagkij
- Страницы, где используется шаблон "Навигационная таблица/Телепорт"
- Страницы с телепортом
- Стандартные библиотеки
- Стандартная библиотека
- Стандартная библиотека Arduino
- Стандартные библиотеки Arduino
- Библиотека EEPROM
- Стандартная библиотека EEPROM
- EEPROM
- Функция