Files
microcontroller/D1 mini/d1_eeprom/d1_eeprom.ino
T
2022-12-06 09:38:26 +01:00

94 lines
2.0 KiB
Arduino

/*
* https://forum.arduino.cc/t/esp8266-eeprom/631650/10
* https://docs.arduino.cc/learn/built-in-libraries/eeprom#put
*/
#include <EEPROM.h>
using Container = byte[4];
struct EpData // eine Datensammlung im EEPROM
{
int kram;
Container container;
bool flagge;
// usw
};
Container satzA {'a','b','c','d'}; // beispieldaten
Container satzB {'w','x','y','z'}; // beispieldaten
struct MyObject {
float field1;
byte field2;
char name[10];
};
MyObject obj1 {1.111f, 42, "siarp"};
void setup(void)
{
EEPROM.begin(512); // Um Speicherplatz zu sparen, sollte der Pufferspeicher nicht größer als notwendig initialisiert werden. Die Maximale Größe beträgt 4096.
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}
/* Serial.println();
Serial.println();
Serial.println(" Menue");
Serial.println(" a) schreibt satzA");
Serial.println(" b) schreibt satzB");
Serial.println(" p) liest EEPROM und zeigt den Inhalt");
Serial.println();
Serial.println();*/
// EEPROM.put(0, obj1);
// EEPROM.commit();
MyObject rObj;
EEPROM.get(0, rObj);
Serial.println("Read custom object from EEPROM:");
Serial.println(rObj.field1);
Serial.println(rObj.field2);
Serial.println(rObj.name);
}
void loop(void)
{/*
switch(Serial.read())
{
case 'a': EEPROM.put(offsetof(EpData,container),satzA);
EEPROM.commit();
Serial.println(" SatzA geschrieben");
break;
case 'b': EEPROM.put(offsetof(EpData,container),satzB);
EEPROM.commit();
Serial.println(" SatzB geschrieben");
break;
case 'p': Serial.println(" Satz lesen ");
Container gelesenerSatz;
EEPROM.get(offsetof(EpData,container),gelesenerSatz );
for(byte g:gelesenerSatz)
{
Serial.print(g);
Serial.print(',');
}
Serial.println();
break;
}*/
}