Hallo
ich bekomme es nicht hin mein Struct array in den eeprom zu schreiben
und anschliesend wieder zu lesen
Hier mal die Structuren:
struct structCMD{
int Befehl;
int param1;
int param2;
} cmdP = {
0, 0 ,0
};
structCMD CMD[50];
int anzCMD = 0;
struct StoreStruct{
float impPause;
float impDauer;
} storage = {
0, 0
};
void loadData() {
unsigned int adrIP =0;
for (unsigned int t=0; t<sizeof(storage); t++)
{
*((char*)&storage + t) = EEPROM.read(CONFIG_START + t);
adrIP = t;
}
adrIP=adrIP + 1;
for (int iP=0; iP<anzCMD; iP++)
{
for (unsigned int t=0; t<sizeof(cmdP); t++)
{
*((char*)&CMD[iP] + t) = EEPROM.read(adrIP + (iP + sizeof(cmdP))
+t);
}
Serial.println("Wert=");
Serial.print(CMD[iP].Befehl);
Serial.println("");
}
}
void saveData() {
unsigned int adrIP =0;
for (unsigned int t=0; t<sizeof(storage); t++)
{
EEPROM.write(CONFIG_START + t, *((char*)&storage + t));
adrIP = t;
}
adrIP=adrIP + 1;
for (int iP=0; iP<anzCMD; iP++)
{
for (unsigned int t=0; t<sizeof(cmdP); t++)
{
EEPROM.write(adrIP +(iP + sizeof(cmdP))+ t, *((char*)&CMD[iP] +
t));
}
//Serial.println("Wert=");
//Serial.print(CMD[iP].Befehl);
//Serial.println("");
}
}
Okay ich hab den Fehler endeckt *((char*)&CMD[iP] + t) = EEPROM.read(adrIP + (iP statt<+> besser <*> sizeof(cmdP)) Und beim speichern das selbe: hehe
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.