EEPROM - Problem beim Daten speichern

Gast #602755
Lesenswert?
• ▲
▼
Ich probier grad so ein bisschen, Daten im EEPROM abzuspeichern. Dabei 
hab ich aber ein Problem. Hier erstmal der Quelletext:
1
#include "eeprom.h"
2

3

4
uint8_t eeFooByte EEMEM = 4;
5

6
eeprom_write_byte(&eeFooByte, eeFooByte);        <-- Zeile 7

In eeprom.h werden alle festen Adressen (für den späteren Zweck) 
definiert und die AVR-Headerdatei eeprom.h eingebunden.

Wenn ich dieses Programm compilieren möchte kommen immer folgende 
Fehler:

- Syntaxfehler vor &-Zeichen (Zeile 7)
- in Konflikt stehende Typen für eeprom_write_byte (Zeile 7)
Gast #602902
Lesenswert?
• ▲
▼
Das sieht aus, als hättest du da was verwechselt.
Das EEMEM bei der Variablen bedeutet, dass diese Variable _schon im 
EEPROM steht_! Der Compiler (der Linker?) erzeugt eine Hex-Datei (.eep) 
mit dem Inhalt für das EEPROM. Wenn du eeprom_write_byte benutzen 
willst, musst du eine "normale" Variable als 2. Parameter angeben.
Schau mal lieber (nochmal) hier: 
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#EEPROM rein ;)

hth. Jörg
ps.: die header -- avr/eeprom.h und stdint.h bzw. inttypes.h -- hast du 
aber eingebunden, oder?
Gast #603221
Lesenswert?
• ▲
▼
Die Header-Dateien die du genannt hast sind alle eingebunden.
Hab schon ziemlich viel rumprobiert, deswegen warscheinlich der 
unsinnige Code. Hier vielleicht ein besserer:
1
#include "eeprom.h"
2

3
uint8_t eeFooByte EEMEM = 4;
4

5
uint8_t zahl = eeprom_read_byte(&eeFooByte);

Hier kommt in Zeile 5 immer der Fehler: "Initialisierungselement ist 
nicht konstant"

Wie könnte man diesen Fehler beheben???

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.