Probleme bei EEPROM schreiben bei Mega8

Gast #3257071
Lesenswert?

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...
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren