Re: Float ins EEprom speichern??? Kategorie: Programmierung (von André H. - 12.10.2002 20:44) | |
Als Antwort auf Float ins EEprom speichern??? von Thomas - 12.10.2002 19:46
| |
Hallo Thomas, > ich habe da nen problem und komme nicht weiter und zwar möchte ich eine > float zahl zb 23,4 im eprom speichern und auch wieder auslesen. > > zurzeit schreibe ich einen string ins eprom aber denn kann ich zur weiteren berechnung > nicht verwenden. das problem ist das dieser zahlenwert aus dem eprom unbeding ein > Float sein mu�. was ich rein schreibe ist eigendlich egal.( amliebsten einen string sont mu� ich ne menge > andern.) > > gibt es da eine möglichkeit einen string in ein float zu wandeln oder direkt ein float ins eprom zu schreiben. > das modul eeprom gibt das ja nicht her Ich habe absichtlich float nicht implementiert, da ich davon ausgehe, da� die Funktionen des Moduls mem.c2 bekannt sind. So schreibst Du ein float ins EEProm: function writefloat(byte eepromaddr, int addr, float data) { byte temp[8]; mem.putfloat(temp,0,data); eeprom.writebytearray(eepromaddr, addr, temp, 8); } ... und so liest Du ein float aus dem EEProm: function readfloat(byte eepromaddr, int addr) returns float { byte temp[8]; eeprom.readbytearray(eepromaddr, addr, temp, 8); return mem.getfloat(temp,0); } Beachte, da� ein float 8 Byte benötigt. Also, einfach nochmal die Funktionen in mem.c2 durchgehen (siehe Handbuch). Aber vielleicht implementiere ich auch floats in eeprom.c2 in der nächsten Version. :-) Wenn Du aber Festkommawerte ins EEProm speichern willst, empfehle ich Dir dringend mit Integer oder long zu arbeiten, um Speicher zu sparen. Ein Integer benötigt 2 Byte, ein Longint 4 Byte. Einen Float benötigt man i.d.R. nur, wenn sehr viele stellen hinter und/oder nach dem Komma benötigt werden. Aber auch bei "komplizierten" Formeln. (z.B. mit log, sin, cos, tan ...) Die Auswertung eines Temp.Sensors gehört nicht dazu. :-) Ich Rechne auch mit "Komma"-Zahlen (bis 5 Kommastellen), und bis jetzt reicht der long-Typ völlig dafür aus. :-) Als Grundregel gilt: Immer die einfachste Art der Zahlen verwenden (und die, die am wenigsten Platz wegnimmt). Das entlastet auch die CPU sehr. MfG André H. Antworten bitte nur ins Forum! Fragen per EMail auf Forum-Postings werden nicht beantwortet! Das macht meine Heizung gerade | |
Antwort schreiben Antworten: Re: Float ins EEprom speichern??? (von Thomas - 12.10.2002 23:07) Re: Float ins EEprom speichern??? (von André H. - 13.10.2002 11:02) Re: Float ins EEprom speichern??? (von Thomas - 13.10.2002 18:26) Re: Float ins EEprom speichern??? (von André H. - 13.10.2002 20:30) Re: Float ins EEprom speichern??? (von Thomas - 14.10.2002 12:09) |