Tyrald
11.10.2010, 13:54
Hallo!
Ich probier gerade ein Array aus structs im Eeprom zu speichern und zu laden:
struct S_ChProgram {
uint8_t mode;
uint16_t value[2];
};
#ifndef EEMEM
#define EEMEM __attribute__ ((section (".eeprom")))
#endif
#define NUMBER 2 //Gesamtzahl S_ChProgram Structs
uint8_t eeFoo_S_ChProgamm[NUMBER][sizeof(struct S_ChProgram)] EEMEM;
struct ch[NUMBER];
void write_eeprom (void )
{
for (int i = 0; i < NUMBER; i++)
eeprom_write_block (&ch[i],&eeFoo_S_ChProgamm[i],sizeof(struct S_ChProgram));
}
void read_eeprom ( void )
{
for (int i = 0; i < NUMBER; i++)
eeprom_read_block (&ch[i],&eeFoo_S_ChProgamm[i],sizeof(struct S_ChProgram));
}
ch[0] wird erfolgreich geschrieben und gelesen... aber alles andere läuft nicht! ich denke es liegt an den zeigenr auf die Eeprom-adresse ,, kenn mich damit aber noch nicht so gut aus!
jemand nen tipp????
Ich probier gerade ein Array aus structs im Eeprom zu speichern und zu laden:
struct S_ChProgram {
uint8_t mode;
uint16_t value[2];
};
#ifndef EEMEM
#define EEMEM __attribute__ ((section (".eeprom")))
#endif
#define NUMBER 2 //Gesamtzahl S_ChProgram Structs
uint8_t eeFoo_S_ChProgamm[NUMBER][sizeof(struct S_ChProgram)] EEMEM;
struct ch[NUMBER];
void write_eeprom (void )
{
for (int i = 0; i < NUMBER; i++)
eeprom_write_block (&ch[i],&eeFoo_S_ChProgamm[i],sizeof(struct S_ChProgram));
}
void read_eeprom ( void )
{
for (int i = 0; i < NUMBER; i++)
eeprom_read_block (&ch[i],&eeFoo_S_ChProgamm[i],sizeof(struct S_ChProgram));
}
ch[0] wird erfolgreich geschrieben und gelesen... aber alles andere läuft nicht! ich denke es liegt an den zeigenr auf die Eeprom-adresse ,, kenn mich damit aber noch nicht so gut aus!
jemand nen tipp????