> Ich hatte erst vermutet dass das nur
> ein Zeiger ist, aber damit liege ich glaube ich daneben.
Aus Compilersicht ist das eine ganz normale Variable,
deren Attributierung allerdings verhindert, dass sie
im SRAM angelegt wird.
Der Compiler kümmert sich also nur darum, dass dieser
Variablen eine Adresse zugewiesen wird (genauso
wie er es auch bei Variablen im SRAM macht) aber ansonsten
ist es ratsam, die Finger von dieser Variablen zu lassen.
> Und was muss man nun tun, wenn man eine zweite Variable im EEPROM
> lesen/speichern möchte
Du legst eine 2.te variable an.
uint16_t eeFooWordReleaseCount EEMEM = 0;
uint8_t eeNochEineVariable EEMEM = 5;
'Zeile B' hat mit 'Zeile A' nichts zu tun. in 'Zeile B'
wird lediglich eine ganz stinknormale Variable vereinbart,
damit man auch einen Speicherplatz hat, wohin eeprom_read_word
die Daten schreiben kann.
Das ganze ist doch im Grunde nur eine Zuweisung
int i;
int j;
i = j;
Nur halt mit dem Unterschied, dass j im EEPROM zu liegen
kommt. Ergo
* muss man dem Compiler auch sagen, dass j im EEPROM liegt.
Das macht das EEMEM da drinnen
int EEMEM j;
* kannst du nicht eine normale Zuweisung benutzen, da EEPROM
etwas anders angesprochen wird. In üblicher C Manier gibt
es dafür eine Spezialfunktion, die das erledigt
i = eeprom_read_word( &j );