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

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