ben schrieb:> Folgendes funktioniert nicht (nur datenmüll)>> eeprom_update_block(&ee_myStruct[34],&s,sizeof(myStruct_t));
du solltest versuchen die Adresse 0 den Anfang vom struct zu übergeben,
nicht das Ende
eeprom_update_block(&ee_myStruct[0],&s,sizeof(ee_myStruct));
oder so? bin grad unsicher
eeprom_update_block(&ee_myStruct,&s,sizeof(ee_myStruct));
int array[100] = {0}; (vorausgesetzt wird int 4 byte gross)
memset( array, -1, sizeof(array)/sizeof(&array[0]) );
sizeof(array) = 400 (Bytegrösse des gesamten arrays)
sizeof(&array[0]) = 4 (Bytegrösse eines Feldes)
400/4 = 100 Anzahl der Felder
Die Nichtanwendung von "sizeof(array)/sizeof(&array[0])" könnte eine
Ursache sein.
ben schrieb:> versuche ein array einer datenstructur aus dem eeprom zu lesen und zu> schreiben.ben schrieb:> ich würde aber gerne nur 2 byte, also nur einen array eintrag auf einmal> schreiben / lesen
und warum behauptest du hier was anderes als oben?
oben wolltest du das array lesen und schreiben, hier plötzlich nur einen
Teil davon?
ben schrieb:> Folgendes funktioniert nicht (nur datenmüll)> eeprom_update_block(&ee_myStruct[34],&s,sizeof(myStruct_t));> eeprom_read_block(&s, &ee_myStruct[34],sizeof(myStruct_t));
Wie testest du das?
> Was funktioniert ist:> eeprom_update_byte(&ee_myStruct[34],s.a);> eeprom_update_byte(&ee_myStruct[34]+1,s.b);>> s.a = eeprom_read_byte(&ee_myStruct[34]);> s.b = eeprom_read_byte(&ee_myStruct[34]+1);
Das bezweifle ich, &ee_myStruct[34]+1 ist equivalent zu
&ee_myStruct[35]. Meinten Sie: &ee_myStruct[34].a und &ee_myStruct[34].b
?
Daniel A. schrieb:> Hast du die Doku überhaupt gelesen?> http://www.atmel.com/webdoc/AVRLibcReferenceManual...void> eeprom_update_block(> const void * __src,> void * __dst,> size_t __n)> Update a block of __n bytes to EEPROM address __dst from __src.>> Du hast dst und src vertauscht! Bei eeprom_read_block auch! Lern> Englisch doku lesen!
Du hast den Fehler gefunden, gratuliere. An deinem Ton solltest du aber
noch ein bisschen Arbeiten. Mir war ja klar, dass ich irgendeinen Fehler
gemacht habe, sonst hätte ich die Frage ja nicht gepostet. Dazu ist ein
Forum da. Aber klar, am Besten gleich mal willkürlich Sprachprobleme
unterstellen. Aber DU machst bestimmt alles richtig.
Oh, doch nicht, weil bei eeprom_read_block ist entgegen deiner Aussage
die Reihenfolge nämlich richtig (siehe Doku, die du ja so toll lesen
kannst).
ben schrieb:> Aber DU machst bestimmt alles richtig.
Das habe ich nie Behauptet.
> Oh, doch nicht, weil bei eeprom_read_block ist entgegen deiner Aussage> die Reihenfolge nämlich richtig (siehe Doku, die du ja so toll lesen> kannst).
Entschuldigung, ich habe wohl überreagiert. Am Ende sind es immer
irgendwelche scheinbar vermeidbaren Kleinigkeiten...
Das mir der Fehler ausgerechnet jetzt passieren musste ist mir irgendwie
peinlich, ich sollte wohl etwas vorsichtiger sein, ich hoffe du kannst
mir verzeihen?