Gast
#960927
Ich verstehe den Abschnitt zum EEPROM im Tutorial nicht ganz: http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#EEPROM
1 | |
Steht der Wert 123 jetzt im RAM oder im EEPROM oder beides?
|
Anzeige
|
Frage zu AVR EEPROM
Gast
#960927
Ich verstehe den Abschnitt zum EEPROM im Tutorial nicht ganz: http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#EEPROM
Steht der Wert 123 jetzt im RAM oder im EEPROM oder beides? kalle wrote:
> Steht der Wert 123 jetzt im RAM oder im EEPROM oder beides?
Im EEPROM. Und nur da. (Vorausgesetzt, Du schickst beim Programmieren
die .eep-Datei mit)
Gast
#960946
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? 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.
Gast
#960955
Vielen Dank für die Hilfe! Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|