Pages: [1]   Go Down
Author Topic: in EEPROM Float-Variable abspeichern  (Read 810 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 1
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo,

ich habe bereits alles Mögliche versucht bekomme es aber nicht hin einen float Wert in den eeprom zu schreiben. Hat jemand einen Tipp für mich wie ich dies anstelle?


Gruß
Lazybone
« Last Edit: August 17, 2011, 03:04:57 am by uwefed » Logged

Weinsberg, Germany
Offline Offline
God Member
*****
Karma: 2
Posts: 770
A Coder's Tale
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Also man kann ganze Strukturen ins EEPROM schreiben, das geht dann auch mit floats.

Definition:
Code:
struct StoreStruct {
float fliesskommazahl;
} storage = {
1.0; // Initialwert
}

Speichern:
Code:
for (unsigned int t=0; t<sizeof(storage); t++)
EEPROM.write(CONFIG_START + t, *((char*)&storage + t));

Auslesen:
Code:
...
for (unsigned int t=0; t<sizeof(storage); t++)
*((char*)&storage + t) = EEPROM.read(CONFIG_START + t);

Zugriff dann per
Code:
storage.fliesskommazahl = 7.3;
etc...

Obs einen einfacheren Weg für floats gibt weiß ich nicht, ich hatte es bisher nur mit bytes, ints und longs zu tun und die kann man ganz einfach per EEPROM.write() speichern.
Logged

Germany
Offline Offline
Edison Member
*
Karma: 44
Posts: 2261
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Das Eeprom kann ja nur Bytes aufnehmen, also muss man sich zur Aufnahme von Floats ein paar Gedanken machen. Beim Atmega328 (Duemilanove und Uno) haben wir 1024 "Speicherplätze" zur Verfügung. Bei einer Fließkommazahl kann man jetzt jede Stelle dieser Zahl separat abspeichern, im Prinzip genau das, was Joghurt vorschlug. Saubere Lösung!
Logged

Mein Arduino-Blog: http://www.sth77.de/ - letzte Einträge: Teensy 3.0 - Teensyduino unter Window 7 - Teensyduino unter Windows 8

Pages: [1]   Go Up
Jump to: