Gast
#3257071
Hallo, ich möchte ein paar Werte im EEPROM eines Mega8 speichern, aber habe da ein Problem, aber nur bei einer von 4 Variablen. Ich habe mir deshalb sogar schon ein Testprogram geschrieben. Das liest einen Drehimpulsgeber ein und verändert damit eine Variable. Diese Variable und 3 weitere Werte, die ich nur zum testen ebenfalls aus dieser Variable erzeuge, lasse ich auf einem LCD ausgeben. Wenn ich eine Taste drücke sollen dann meine Werte ins EEPROM geschrieben und zur Kontrolle sofort wieder ausgelesen werden. Bei drei Variablen (eine uint16_t und zwei uint8_t) funktioniert das ohne Probleme, aber bei einer weiteren uint16_t Variable nicht! Meine erste Vermutung war ein defekter bzw. "verbrauchter" EEPROM, da ich damit schon etwas getestet habe. Mit einem neuen Mega8 hab ich aber das selbe Problem. Als nächstes dachte ich an einen Fehler in der Berechnung. Die ist aber so trivial dass es da nicht viele Fehler geben kann. Außerdem hätte ich noch die itoa()-Funktion im Verdacht, mit der ich die Werte zus Ausgabe am LCD umwandel. Da das aber bei der anderen uint16_t-Variable auch klappt würde ich das auch ausschließen. Im Anhang sind meine beiden Funktionen mit welchen ich den EEPROM lese und schreibe. Probleme macht einzig und alleine die Variable "val3". Hier ein paar Beispiele: val | val3-Soll | val3-Ist --------------------------- 0 | 50 | -206 6 | 56 | -200 7 | 57 | 57 13 | 63 | 63 14 | 64 | 320 300 | 350 | 10590 Warscheinlich habe ich nur eine Kleinigkeit übersehen, aber ich komme nicht drauf...