Hallo, Ich verwende AVR-Studio 4.13 und als Programmiersprache, für den Atmega 8, C. Wenn man Variablen im EEPROM speichert und z.B schreibt double eeTsoll EEMEM = 25; schreibt der Compiler eine .eep Datei mit dem Wert 25 und der Adresse (glaube ich halt) in hexformat. Wie kann ich z.B in Matlab diesen Wert ändern und dann wieder in den Atmega laden (laden mit AVR-Studio)? Mich würde interessieren wie die Hexzahl aufgebaut ist. Zum speichern der double Variable wurde folgendes gemacht: union { // "Konverter" double d; // Beim Auslesen double uint8_t i[sizeof(double)]; // zum Abspeichern uint8_t Array }u; So holt man die Varible aus dem EEPROM eeprom_busy_wait(); eeprom_read_block(&(u.i),&eeTsoll,sizeof(double)); eeprom_busy_wait(); Tsoll = u.d; So schreibt man die Variable in den EEPROM u.d = Tsoll; eeprom_busy_wait(); eeprom_write_block(&(u.i),&eeTsoll,sizeof(double)); Das heißt sie wird als uint8_t Array abgespeichert. hier das was dann in der .eep Datei steht: :040000000000C841F3 :00000001FF Danke Werner Weiß leider nicht wie die double Variablen hier aufgebaut sind, möglicherweise finde ich es aber noch heraus. Also wenn jemand eine Idee hat bitte schreiben
>:040000000000C841F3 >:00000001FF Das nennt man INTEL-HEX-Format. Jede Zeile besteht aus Zeilentyp, Adresse, Datenbytes und Prüfsumme, wenn mich nix täuscht. Informier dich einfach mal, wie Intel-Hex genau aufgebaut ist, dann isses kein Problem mehr mal flux zwei Bytes zu ändern.
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.