ESP-01: EEPROM klappt nicht :-(

OP (Firma: Q3) #7097309
Lesenswert?

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 
...
OP (Firma: Q3) #7097899
Lesenswert?

Mario M. schrieb:
> Die Position des für die EEPROM-Emulation genutzten Flash-Sektors
> hängt
> von der Flash-Gesamtgröße ab. Wenn das Projekt für eine zu hohe
> Flash-Größe kompiliert wird, landen die Daten im Nichts.

Vielen Dank für den Hinweis. Ich habe im Menüpunkt Werkzeuge/Flashsize 
den Wert von 1MB auf 256K heruntergesetzt (den genauen Wert der Module 
kenne ich nicht). Aber es hat geholfen, nun funzt es so, wie es sollte. 
Danke!

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren