Arduino:Примеры/EEPROMIteration: различия между версиями
Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Myagkij (обсуждение | вклад) м (Замена текста — «<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">» на «<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">») |
Нет описания правки |
||
Строка 25: | Строка 25: | ||
==Код== | ==Код== | ||
<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_iteration | Пример eeprom_iteration |
Версия от 12:32, 20 мая 2023
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.
Разные способы перебора EEPROM-памяти[1]
Микроконтроллер на плате Arduino/Genuino имеет, как правило, 512 байт EEPROM-памяти (у моделей Uno и Mega ее объем составляет 1 Кб и 4 Кб соответственно) – она хранит информацию, даже если плата находится в выключенном состоянии. Другими словами, это что-то вроде крошечного жесткого диска.
Цель этого примера – показать несколько разных способов, как перебрать всю EEPROM-память (т.е. пройтись по всей EEPROM-памяти, от самой первой ячейки до самой последней). Этот код нельзя запустить сам по себе, но он содержит рабочие фрагменты, которые можно использовать в других скетчах.
Необходимое оборудование
- Плата Arduino или Genuino
Цепь
Для этого примера цепи строить не нужно.
Схема
Код
/***
Пример eeprom_iteration
Этот скетч содержит несколько фрагментов, иллюстрирующих
несколько простейших способов «шерстить» по EEPROM-памяти.
Запускать этот скетч необязательно, он написан исключительно
в демонстративных целях.
Автор – Кристофер Эндрюс (Christopher Andrews), 2015 год.
Выпущено под лицензией MIT.
***/
#include <EEPROM.h>
void setup() {
/***
«шерстим» по EEPROM-памяти при помощи цикла for
***/
for (int index = 0 ; index < EEPROM.length() ; index++) {
// прибавляем к количеству EEPROM-ячеек еще одну:
EEPROM[ index ] += 1;
}
/***
«шерстим» по EEPROM-памяти при помощи цикла while
***/
int index = 0;
while (index < EEPROM.length()) {
// прибавляем к количеству EEPROM-ячеек еще одну:
EEPROM[ index ] += 1;
index++;
}
/***
«шерстим» по EEPROM-памяти при помощи цикла do-while
***/
int idx = 0; // используем «idx», чтобы избежать конфликта с «index» из фрагмента выше
do {
// прибавляем к количеству EEPROM-ячеек еще одну:
EEPROM[ idx ] += 1;
idx++;
} while (idx < EEPROM.length());
} // заканчиваем setup()
void loop() {}
См.также
- EEPROM library reference
- EEPROM Clear - Fills the content of the EEPROM memory with “0”.
- EEPROM Read – Reads values stored into EEPROM and prints them on Serial.
- EEPROM Write – Stores values read from A0 into EEPROM.
- EEPROM Crc – Calculates the CRC of EEPROM contents as if it was an array.
- EEPROM Put – Put values in EEPROM using variable semantics (differs from EEPROM.write() ).
- EEPROM Get – Get values from EEPROM and prints as float on serial.
- EEPROM Update – Stores values read from A0 into EEPROM, writing the value only if different, to increase EEPROM life.