Moin,
laut dem Tut vergibt der AVR-GCC die Var. Adressen ja scheinbar
zufällig.
Daher wollte ich einen Test einbauen ob meine struct auch da stehen wo
ich sie vermute...(bzw. ob überhaupt schonmal gespeichert wurde)
1 | static struct config_anzeige_struct anzeige[16];
|
2 | static struct config_anzeige_struct anzeige_eemem[16] EEMEM;
|
3 |
|
4 | static struct config_pfeil_struct pfeil;
|
5 | static struct config_pfeil_struct pfeil_eemem EEMEM;
|
6 |
|
7 | ...
|
8 |
|
9 |
|
10 | extern void config_nach_eemem()
|
11 | {
|
12 | eeprom_write_block(anzeige,anzeige_eemem,sizeof(anzeige));
|
13 | eeprom_write_block(&pfeil,&pfeil_eemem,sizeof(pfeil));
|
14 | }
|
15 |
|
16 | extern void config_aus_eemem(void)
|
17 | {
|
18 | //Wenn gültiger Wert im EEMEM
|
19 | if(eeprom_read_byte(&anzeige[0].aktiv) < 2)
|
20 | eeprom_read_block(anzeige,anzeige_eemem,sizeof(anzeige));
|
21 | //Ganze struct auslesen
|
22 |
|
23 | //Wenn gültiger Wert im EEMEM
|
24 | if(eeprom_read_byte(&pfeil.aktiv) < 2)
|
25 | eeprom_read_block(&pfeil,&pfeil_eemem,sizeof(pfeil));
|
26 | //Ganze struct auslesen
|
27 |
|
28 | }
|
Die Variable aktiv gibts in beiden Struct als uint8_t, diese kann nur 0
oder 1 als Wert annehmen...
ist das so richtig? oder stimmt da was noch nicht? Weil irgendwie tut
das nicht... kA ob er überhaupt speichert oder liest...
Danke für alle Antworten.