Hi, Wie kann ich variablen vom Typ float in den EEPROM schreiben?? lg, Stefan
Auf meiner Homepage gibts unter Winavr-Examples ein Bespiel wie man int Variablen in EEPROM ablegen und auslesen kann. Dieses Beispiel anpassen an float variablen sollte ja nicht so schwierig sein. http://www.mysunrise.ch/users/pfleury/
Hi, Wie man 8-bit und 16-bitVariablen abspeichert ist mir klar. Float sind doch 32-bit lang und ich weis nicht wie ich dem Compiler sage, dass er sie in einzelne Bytes aufteilen soll. lg, Stefan
Wenn Du die AVR-libc anschaust, sieht du dass es auch eine Funktion eeprom_write_block() / eeprom_read_block() gibt. Diese Funktionen können zum speichern von float Variablen verwendet werden.
Hallo Stefan, mit folgende union kannst du dein float als byte oder word lesen oder schreiben! float_byte_int tmp; tmp.value = -12,232; tmp.byte_val[0..3] tmp.int_val[0..1] typedef union { float value; unsigned char byte_val[4]; unsigned int int_val[2]; } float_byte_int; Grüße Mark,
Und so kann man EEPROM Beispiel auf Float Variablen erweitert werden: #define EEPROM_SECTION _attribute_ ((section (".eeprom"))) float eeprom_var4 EEPROM_SECTION = 1.3456; // four byte float int main(void) { float floatVar; eeprom_read_block( &floatVar, &eeprom_var4, sizeof(eeprom_var4) ); }
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.