Frage zu AVR EEPROM

Gast #960946
Lesenswert?

Danke und aha, also ist eeFooByte nur die vom Compiler vergebene Adresse 
im EEPROM.

Aber was mache ich, wenn ich einmal einen Anfangswert im EEPROM ablegen 
will, der aber anschließend nur vom Programm geändert werden soll und 
durch ein neu-flashen nicht wieder mit 123 überschrieben werden soll?

Einmal Flashen und dann die Fuses so setzen, dass die Initialisierung 
nicht übertragen wird?
#960952
Lesenswert?

kalle wrote:
> Danke und aha, also ist eeFooByte nur die vom Compiler vergebene Adresse
> im EEPROM.
Nicht ganz. Erstens ist eeFooByte keine Adresse, sondern ein 
Variablenname, weshalb bei Zugriffen auf die Variable mit den 
entsprechenden Funktionen auch der Adressoperator "&" verwendet werden 
muss, um an die Adresse heranzukommen. Außerdem vergibt der Compiler 
keine Adressen, das macht der Linker.

> Aber was mache ich, wenn ich einmal einen Anfangswert im EEPROM ablegen
> will, der aber anschließend nur vom Programm geändert werden soll und
> durch ein neu-flashen nicht wieder mit 123 überschrieben werden soll?
Dann darfst Du das EEPROM beim Programmieren eben nicht jedes Mal neu 
schreiben. Du könntest nach dem ersten Programmieren die EESAVE-Fuse 
setzen, um die Inhalte zu behalten.

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