Hallo da draußen, ich habe eine struct aus 3 arrays definiert, die ich mit eeprom_write_block(...) ins EEPROM (des ATMega128) ab Adresse 0 schreiben möchte, und natürlich auch wieder auslesen möchte. Da, wo im folgenden Code die ??? stehen, habe ich mein Problem: wie finde ich das 1. Element der struct ? Danke im voraus ! Otto /**** eeprom_handling.c begonnen 5.3.06 OR *****/ #include <avr/eeprom.h> typedef struct { uint8_t format_delay_control [ 3 ] ; uint8_t chroma_gain_control [ 3 ]; uint8_t chroma_control [ 3 ]; } eeprom_struct ; #define eeprom_struct.format_delay_control = {0x12, 0x0F, 0x0E} ; #define eeprom_struct.chroma_gain_control = {0x13, 0x0F, 0x0E } ; #define eeprom_struct.chroma_control = {0x24, 0x0F, 0x0E } ; void eeprom_write ( void ) { eeprom_write_block ( ??? , 0 , sizeof ( eeprom_struct ) ) ; }
> 3 arrays definiert
Du hast gar nichts definiert. Du hast nur eine Menge
Zeugs deklarariert. D.h. Du hast dem Compiler gezeigt
wie eine Variable aussehen würde, wenn Du eine anlegen
würdest. Aber Du hast keine Variable angelegt.
Irgendwo wirst Du die aber brauchen
eeprom_struct Configuration;
und dann kannst Du die natuerlich als Quelle fuer den
eeprom_write_block nehmen (bzw. umgekehrt zum Lesen).
> ich habe eine struct aus 3 arrays definiert, die ich mit > eeprom_write_block(...) ins EEPROM (des ATMega128) ab Adresse 0 > schreiben möchte, und natürlich auch wieder auslesen möchte. Muß es unbedingt Adresse 0 sein? Normalerweise lässt man den Linker das verwalten. > Da, wo im folgenden Code die ??? stehen, habe ich mein Problem: > wie finde ich das 1. Element der struct ? Um ein erstes Element zu haben, mußt du erstmal ein Objekt diesen Typs haben. Bisher hast du nur den Typ selbst. > #define eeprom_struct.format_delay_control = {0x12, 0x0F, 0x0E} ; > #define eeprom_struct.chroma_gain_control = {0x13, 0x0F, 0x0E } ; > #define eeprom_struct.chroma_control = {0x24, 0x0F, 0x0E } ; Was soll das denn sein? Du solltest dir mal das Tutorial anschauen. Da ist erklärt, wie man mit dem EEPROM arbeitet.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.