Ви не увійшли.
Сторінки 1
Имеется следующая задача:
Есть шилд MEGA2560.
Необходимо записать в память EEPROM несколько динамических массивов символов, затем их считать из EEPROM в массивы.
Длина массивов первоначально неизвестна, поэтому они динамические с максимальным количеством элементов (в моём случае 20).
Делается это для экономии оперативной памяти, т.к. работа идёт с большим количеством массивов.
Запись и чтение происходит следующим образом:
#include <EEPROM.h>
char* str = "text";
char* str1;
char* str2;
...
// Выделяем память для str1
str1 = new char[20];
// Вставляем какие-то данные
str1[0] = 'a';
str1[1] = 'b';
str1[2] = 'c';
// Запись в EEPROM str1
EEPROM.put(address1, str1);
// Освобождаем память от str1
delete [] str1;
// Запись в EEPROM str = "text" - статический массив символов
EEPROM.put(address, str);
*****************************************
Перезагружаем контроллер
*****************************************
// Читаем из EEPROM в str1
EEPROM.get(address1, str1); // Читает ерунду
// Читаем из EEPROM в str2
EEPROM.get(address, str2); // Читает нормально - str = "text"!..
Сторінки 1