Hallo zusammen,
ich hab hier ein Problem und zwar lade einen struct der verschiedene Var's enthält aus dem EEPROM.
Wenn die Variable Configflag nicht den Wert 0xaa lade ich eine def. Config. Sobald ich die Configflag
verändere bekomme ich mit serial.print ganz dubiose Ausgaben.
So richtig kann ich mir nicht erklären was ich da falsch mache. Vielleicht kann mir jemand auf die Sprünge
helfen.
Ich hänge mal das Programm und die BS-Ausgabe an.
Danke vorab und Gruß
Berniebaer
#include <EEPROM.h>
struct ConfigValues {
char ConfigFlag;
char LDRTheshold;
double GeoLongDegree;
double GeoLongMinute;
double GeoLatDegree;
double GeoLatMinute;
double TwilightAngle;
};
ConfigValues Config;
ConfigValues ConfRead;
void setup() {
Serial.begin(9600);
// put your setup code here, to run once:
EEPROM.get(0, Config);
if (Config.ConfigFlag != 0xAA) {
Serial.println("Load default Config");
// empty Config load, set default Config
Config.ConfigFlag = 0x55;
Config.LDRTheshold = 50;
Config.GeoLongDegree = 6.0;
Config.GeoLongMinute = 0.5;
Config.GeoLatDegree = 50.0;
Config.GeoLatMinute = 46.0;
Config.TwilightAngle = 8.3333333;
}
Serial.println(Config.ConfigFlag, HEX);
Config.ConfigFlag = 0xaa;
Serial.println(Config.ConfigFlag, HEX);
EEPROM.put(0,Config);
Serial.println(Config.ConfigFlag, HEX);
EEPROM.get(0, ConfRead);
Serial.println(ConfRead.ConfigFlag, HEX);
}
und hier die Ausgabe vom Serial-Monitor
Load default Config
55
FFFFFFAA
FFFFFFAA
FFFFFFAA