PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Quadratische Funktion mit Komma!?



DanielSan
10.02.2012, 15:12
Hi,

ich habe einen NTC mit dem ich die Temperatur Messen (ich weiss das ist mehr Schätzen) möchte. Dazu habe ich eine Kennlinie aufgenommen und eine "passende" quadratische Funktion ermittelt.

y=-0,00093*x²+1,40323*x-478,979
Für x wird der Wert des ADC eingesetzt und als Ergebniss kommt direkt eine Temperatur raus. Z.B. x=940 -> y=20°C.

Da Bascom ja kein Float kennt weiss ich nicht so recht weiter. Hilft mir da Single bzw. Double weiter? Sind das dann wirklich Zahlen oder Strings?

Wie würdet ihr das lösen?

Danke
Gruß Daniel

Velitzebitz
10.02.2012, 15:31
Hallo!

Ist alle in BASCOM vorhanden!
Long (four bytes). Longs are stored as signed 32-bit binary numbers ranging in value from -2147483648 to 2147483647.
Single. Singles are stored as signed 32 bit binary numbers. Ranging in value from 1.5 x 10^–45 to 3.4 x 10^38
Double. Doubles are stored as signed 64 bit binary numbers. Ranging in value from 5.0 x 10^–324 to 1.7 x 10^308

Genauigkeit kostet aber viel Speicher, die Demoversion melden mit DOUBLE schnell, dass sie 4095 Byte erreicht sind...

Gruss
Velitzebitz

Thomas E.
10.02.2012, 16:58
Würde dazu nicht Single reichen?
Bedenke auch, dass es sinnvoll wäre, die Konstanten auch als Konstanten abzulegen.

crissa
10.02.2012, 21:57
Hoi,
evtl. reicht ja eine Tabelle? D.h. einmal auf dem PC ausrechnen und die Werte im Programm in einer Tabelle ablegen.
Für den Bereich 10 bis 30 Grad braucht man bei 1 Grad Schritten 21 Werte, bei 0.5 Grad Schritten 41 Werte.

Keine Ahnung ob das für Deine gewünschte Anwendung sinnvoll ist aber diese Lösung dürfte eher schneller sein als die Berechnung und zur Laufzeit weniger Speicher benötigen.

HTH!
Tschö, Tore

rossir
10.02.2012, 22:32
Was spricht gegen?:

y=(-93*x*x+140323*x-47897900)/100000
(Für x in [0, 1023], wenn man die Konstanten als Long deklariert.)

DanielSan
12.02.2012, 11:20
Cool Danke für die verschiedenen Lösungsansätze.
Ich habe es jetzt mit "Single" gelöst. Allerdings gefällt mir die Variante von rossir noch besser.
Das werde ich auf jeden fall ausprobieren.

Danke
Gruß Daniel