Найти в Дзене
IOT ENTERPRISE ©

EEPROM пример перебора всех ячеек ARDUINO

/***
Пример перебора EEPROM (eeprom_iteration)
Набор примеров, демонстрирующих простейшие способы
прохода по ячейкам памяти EEPROM.
Запуск этого скетча не обязателен — он лишь показывает
определённые методы программирования.
Автор: Кристофер Эндрюс (Christopher Andrews), 2015
Лицензия: MIT
***/
#include <EEPROM.h> // Подключаем библиотеку для работы с EEPROM
void setup() {
/***
Перебор EEPROM с помощью цикла for.
***/
for (int index = 0; index < EEPROM.length(); index++) { // Цикл от 0 до конца EEPROM
// Увеличиваем значение каждой ячейки EEPROM на 1
EEPROM[index] += 1;
}
/***
Перебор EEPROM с помощью цикла while.
***/
int index = 0; // Инициализируем счётчик для цикла
while (index < EEPROM.length()) { // Пока счётчик меньше длины EEPROM
// Увеличиваем значение текущей ячейки EEPROM на 1
EEPROM[index] += 1;
index++; // Увеличиваем счётчик на 1
}
/***
Перебор EEPROM с помощью цикла do‑while.
Оглавление

/***
Пример перебора EEPROM (eeprom_iteration)

Набор примеров, демонстрирующих простейшие способы
прохода по ячейкам памяти EEPROM.

Запуск этого скетча не обязателен — он лишь показывает
определённые методы программирования.

Автор: Кристофер Эндрюс (Christopher Andrews), 2015
Лицензия: MIT
***/

#include <EEPROM.h> // Подключаем библиотеку для работы с EEPROM

void setup() {

/***
Перебор EEPROM с помощью цикла for.
***/

for (int index = 0; index < EEPROM.length(); index++) { // Цикл от 0 до конца EEPROM
// Увеличиваем значение каждой ячейки EEPROM на 1
EEPROM[index] += 1;
}

/***
Перебор EEPROM с помощью цикла while.
***/

int index = 0; // Инициализируем счётчик для цикла

while (index < EEPROM.length()) { // Пока счётчик меньше длины EEPROM
// Увеличиваем значение текущей ячейки EEPROM на 1
EEPROM[index] += 1;
index++; // Увеличиваем счётчик на 1
}

/***
Перебор EEPROM с помощью цикла do‑while.
***/

int idx = 0; // Новый счётчик (чтобы не конфликтовать с index выше)

do {
// Увеличиваем значение текущей ячейки EEPROM на 1
EEPROM[idx] += 1;
idx++; // Увеличиваем счётчик на 1
} while (idx < EEPROM.length()); // Повторяем, пока счётчик меньше длины EEPROM

} // Конец функции setup()

void loop() {} // Пустой основной цикл — после setup() программа ничего не делает

Пояснение к коду

  1. #include <EEPROM.h>
    Подключает библиотеку EEPROM, необходимую для работы с энергонезависимой памятью микроконтроллера.
  2. void setup()
    Функция, выполняемая один раз при запуске программы. Содержит три разных способа перебора ячеек EEPROM.
  3. Цикл for
    for (int index = 0; index < EEPROM.length(); index++) — цикл, который:
    инициализирует счётчик index значением 0;
    проверяет, что index меньше длины EEPROM (EEPROM.length());
    увеличивает index на 1 после каждой итерации.
    EEPROM[index] += 1; — увеличивает значение ячейки EEPROM по адресу index на 1.
  4. Цикл while
    int index = 0; — инициализирует счётчик.
    while (index < EEPROM.length()) — проверяет, что счётчик меньше длины EEPROM.
    EEPROM[index] += 1; — увеличивает значение текущей ячейки на 1.
    index++; — увеличивает счётчик на 1 (переход к следующей ячейке).
  5. Цикл do‑while
    int idx = 0; — инициализирует новый счётчик (чтобы избежать конфликта имён с предыдущим index).
    do { ... } while (idx < EEPROM.length()); — выполняет тело цикла хотя бы один раз, затем проверяет условие.
    EEPROM[idx] += 1; — увеличивает значение текущей ячейки на 1.
    idx++; — увеличивает счётчик на 1.
  6. void loop()
    Пустой цикл, так как после setup() программа не выполняет дополнительных действий.

Ключевые моменты

  • EEPROM.length() — возвращает количество байт в EEPROM (зависит от модели платы).
  • EEPROM[index] — доступ к ячейке EEPROM по индексу (как к массиву).
  • Все три цикла выполняют одно и то же действие: увеличивают значение каждой ячейки EEPROM на 1, но демонстрируют разные стили программирования.