Forum: Mikrocontroller und Digitale Elektronik .eep Dateien aus AVR-Studio 4.13 in Matlab Werte ändern?, avrgcc, Atmega8


von Werner (Gast)


Lesenswert?

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

von Sven P. (Gast)


Lesenswert?

>: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
Noch kein Account? Hier anmelden.