struct und eeprom Auslesen Prob

OP Persönliche Seite #854416
Lesenswert?

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.
OP Persönliche Seite #854512
Lesenswert?

das sieht gut aus...
1
:2000000001009CFF64006C4930000000000000011C9CFF64006C5347617300000000011DE7
2
:200020009CFF64006C534769657200000001039CFF64006C493300000000000000049CFFF1
3
:20004000640027000000000000000000059CFF640027000000000000000000069CFF6400E5
4
:2000600027000000000000000000079CFF640027000000000000000000089CFF64002700FE
5
:200080000000000000000000099CFF6400270000000000000000000A9CFF64002700000001
6
:2000A0000000000000000B9CFF6400270000000000000000010964009600394261740000BB
7
:2000C000000000011E9CFF640039534E69636B000000011F9CFF64003953526F6C6C0000AD
8
:2000E00000010F9CFF6400394931350000000000010003DC05011C011C00006400011C0069
9
:20010000006400FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98
10
:20012000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF
11
:20014000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF
12
:20016000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F

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