Hallo, kann mir jemand sagen wie man Gleitkommazahlen zB. 0,35 in das Eeprom hinterlegt? Hab vorher immer nur ganze Zahlen eintragen und sehe nur die Möglichkeit das man in Adresse1 die 0 eintägt, Adresse2 die 3... und beim auslesen diese Werte wieder zusammenfügt aber ob man das so umsetzen kann bin ich mir auch nicht sicher.
Vielleicht hilft ein anderer Ansatz: für Werte wie 0.35 und Konsorten braucht man nämlich garantiert keine Gleitkommazahlen, da geht Fixed Point problemlos. In meinem momentanen Projekt behandle ich Zahlen mit bis zu 3 Nachkommastellen ausschließlich per Festkommaarithmetik. Das spart jede Menge Platz und ist - zumindest für mich - auch übersichtlicher. Micha
Erstens geht wie gesagt das Abspeichern als String. Zweitens sind Gleitkommazahlen meistens überflüssig - ebenfalls bereits gesagt. Falls AVR: Drittens ist eine Gleitkommazahl 4 Byte groß und kann mit eeprom_read_dword() problemlos gespeichert werden, wenn man nicht zuviele Skrupel beim Casten hat.
Könnt ihr mir vllt die Syntax beschreiben. Normalerweise schreibe ich einen Wert in das Eeprom mit write_eeprom(0x00, 0x01); wenn ich nun eine Gleitkommazahl reinschreibe mit write_eeprom(0x00, 0.2); kommt nur Quatsch raus. Wo kann ich hier nun Fixed Point oder IEE754 einsetzen?
ungetestet:
1 | float f = 0.5; |
2 | eeprom_write_dword( 0x0, // Adresse, je nach Lust und Laune |
3 | *(uint32_t *)&f // float, als uint32_t verkauft |
4 | );
|
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.