BloodDecember
New member
Нужно хранить два значения, использую такиефункции:
С записью первого значения никаких проблем:
Но когда записываю второе:
Оно не сохраняется после перезагрузки модуля. Я понимаю что у меня какая то проблема с адресацией. Точнее я вообще не понимаю как идет адресация.
Код:
void write_string_EEPROM (int Addr, String Str) {
byte lng = Str.length();
EEPROM.begin (64);
if (lng > 15 ) lng = 0;
EEPROM.write(Addr , lng);
unsigned char* buf = new unsigned char[15];
Str.getBytes(buf, lng + 1);
Addr++;
for (byte i = 0; i < lng; i++) {
EEPROM.write(Addr + i, buf[i]);
delay(10);
}
EEPROM.end();
}
char *read_string_EEPROM (int Addr) {
EEPROM.begin(64);
byte lng = EEPROM.read(Addr);
char* buf = new char[15];
Addr++;
for (byte i = 0; i < lng; i++) buf[i] = char(EEPROM.read(i + Addr));
buf[lng] = '\x0';
return buf;
}
С записью первого значения никаких проблем:
Код:
write_string_EEPROM (0, hma);
Код:
write_string_EEPROM (1, hmi);