Ich möchte in einem Programm für einen Sensor mit ESP-01 ganze drei
Byte-Werte im EEPROM sichern. Aber es klappt nicht!
Schreiben mache ich so: (#include <ESP_EEPROM.h> ist dabei)
1 | void eeWrite(int addr, byte b)
|
2 | {
|
3 | EEPROM.begin(512);
|
4 | EEPROM.put(addr,b);
|
5 | EEPROM.commit();
|
6 | delay(50);
|
7 | }
|
Ein probeweise nach dem Commit eingefügtes EEPROM.get liefert genau den
gerade gespeicherten Wert. Also liegt der Verdacht nahe, dass es am
Lesen liegt. Das mache ich so (im Setup-Bereich, diesmal direkt in die
globalen Variablen vom Typ Byte):
1 | void eeRead()
|
2 | {
|
3 | EEPROM.begin(512);
|
4 | EEPROM.get(0,xpwr);
|
5 | EEPROM.get(1,xchn);
|
6 | EEPROM.get(2,xnam);
|
7 | }
|
Eigentlich Bilderbuch-Code, oder? ABER: Es kommt IMMER Null zurück :-(
Ich weiss, dass die ESPs den EEPROM mit dem Spiff-Dateisystem im Flash
simulieren, deshalb das Begin und Commit. Was könnte da schief gehen?
Ich habe auch die 521 schon deutlich verringert (z.B. 8), kein Effekt
...