Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

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)