94 lines
2.0 KiB
Arduino
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;
|
|
}*/
|
|
}
|