Forum: Compiler & IDEs mal wirds gespeichert mal nicht EEPROM.read


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von DAVID B. (bastler-david)


Bewertung
-1 lesenswert
nicht lesenswert
Hallo
ich versuche 9 werte wie folgt zuspeichern.

EEPROM.put(0, 12); (12 ist nur ein beispiel werte reichen von 0 bis 15)
EEPROM.put(1, 12);
EEPROM.put(2, 12);
EEPROM.put(3, 12);
EEPROM.put(4, 12);
EEPROM.put(5, 12);
EEPROM.put(6, 12);
EEPROM.put(7, 12);
EEPROM.put(8, 12);

und wieder zu lesen mit:
int eeprom = (0);

eeprom0 = EEPROM.read(0);
eeprom1 = EEPROM.read(1);
eeprom2 = EEPROM.read(2);
eeprom3 = EEPROM.read(3);
eeprom4 = EEPROM.read(4);
eeprom5 = EEPROM.read(5);
eeprom6 = EEPROM.read(6);
eeprom7 = EEPROM.read(7);
eeprom8 = EEPROM.read(8);

Das geht auch teilweise bis zu Nummer 2 geht das auch sauber.
Nummer 3 (wert 4) geht fast immer.
und ab Nummer 4 (wert5) werden die werte selten bis nie gespeichert.
zuerst dachte ich an lese Fehler.
Das konnte ich ausschlissen da die werte teilweise sogar gleich nach dem 
schreiben verschwinden.
Da kahm ich darauf das der speicher vom ATmega2560 mit 4 KB voll sein 
muss.
Kann aber eigentlich auch nicht sein da Byte ja nur 8 bit braucht wäre 
nicht mal 1 KB belegt.

Jetzt meine letzte Vermutung kann es sein das ich zwischen den Adressen 
immer eins oder 2 freilassen muss da es sich um 2 zahlen handelt ?

Oder gibts da noch einen Trick ?
Danke

von pegel (Gast)


Bewertung
0 lesenswert
nicht lesenswert
EEPROM.put ist eine komplexe Funktion.

https://www.arduino.cc/en/Reference/EEPROMPut

Für ein Byte gibt es EEPROM.write()

Siehe Kommentar im Beispiel.

von pegel (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Ach ja: zu put gehört get und update gibt es auch noch.

von och nööö (Gast)


Bewertung
0 lesenswert
nicht lesenswert
DAVID -. schrieb:
> Oder gibts da noch einen Trick ?

Hätte man da das beliebte RTFM mal wieder zitieren sollen?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.