запись в eeprom массива типа byte

iopq
Offline
Зарегистрирован: 05.07.2016
подскажите пожалуйста. имеется массив типа byte -
byte array1[] = { 61, 62, 63, 64, 65, 66};

 

как его записать в eeprom? 
andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Побайтно.

iopq
Offline
Зарегистрирован: 05.07.2016

побайтно то понятно. может можно как то как сдесь строку-

struct MyObject {
 char name[10];
};
MyObject customVar = {"Hello"};
EEPROM.put(0, customVar);
}

void loop()
{
  MyObject customVar; 
  EEPROM.get(0, customVar);
  Serial.println(customVar.name);
}

 

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

а шо, put(addr,array1) не работает?

iopq
Offline
Зарегистрирован: 05.07.2016

DetSimen пишет:

а шо, put(addr,array1) не работает?

делает вид. потом прочитать не возможно

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

а читаем как? 

iopq
Offline
Зарегистрирован: 05.07.2016

DetSimen пишет:

а читаем как? 

get(addr, temp);

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

а temp какабъявлен?

iopq
Offline
Зарегистрирован: 05.07.2016

byte temp[] = {};

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Ну, потому и не читается.

Записывается нормально, а то, что Вы читать не умеете - Ваша беда.

Объявите temp с заданной длиной (для Вашего примера - 6)  - всё прочитается.

Для того, чтобы работали put и get размер объекта должен быть известен при компиляции.

И вообще, вот Вы объявили

byte temp[] = {};

А потом собрались туда читать. Вопрос: куда именно? В какую память? Кто её выделит? Вы об этом думали? В какую память Вы читать пытаетесь?

iopq
Offline
Зарегистрирован: 05.07.2016

большое спасибо всем