PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Nachkommastellen kürzen - Wie?



m@rkus33
26.12.2005, 00:43
Hallo zusammen,

folgendes einfaches Beispiel:

Spannung über ADC messen und am LCD anzeigen.

U= (0 - 1023) 'wert vom ADC
Const Ref = 5/1023
Volt = U*Ref
Lcd Volt; "Volt"

Jetzt zeigt mir das LCD "4.999999517 Volt" an. Wie kann ich die Anzeige auf "4.99 Volt" kürzen?

Danke für Eure Hilfe

Gruß
Markus

Ratber
26.12.2005, 01:23
zb. mit Round()

Volt = volt * 100
Volt = Round(volt]
Volt = volt / 100

Aus 4.999999517 wird dann 5.00 was ja auch Sinvoll ist

Marco78
26.12.2005, 07:10
Dim V as String*10
V=Str(Volt)
V=Format(V,"0.00")
Lcd V

Damit hab man zwei Nachkommastellen und immer die gleiche Länge der Zahlen. Und somit nicht das Problem, das vor einer erneuten Ausgabe noch Ziffern der letzten Rechnung auf dem Display gelöscht werden müssen.

Grillmeister Markus
26.12.2005, 11:13
schau dir dazu auch mal den befehl "fusing" in der bascom-hilfe an

mfg Markus

m@rkus33
26.12.2005, 11:14
Hallo zusammen,

erstmal Danke für die Tips.

@Ratber

leider geht das nur bei dem ADC Wert von 1023, andere Werte werden dann wieder mit den ellenlangen Nachkommastellen ausgegeben.

@Marco78

funktioniert leider auch nicht weil:

ich doch nicht mit versch. dim Variablen rechnen kann.

Gib es da einen Trick oder bin ich zu doof dafür?

Gruß
Markus

Hier nochmal der Ursprungs- Code mit den (leider) festen Dim As Variablen


Dim Volt As Single
Dim Eu As Word
Const Ref = 5 / 1023

Eu = 1023
Volt = Eu * Ref

LCD Volt; "Volt"

Die Variable Eu kommt über RS232 rein und kann vom ADC ja von 0 - 1023 sein.

Ich habs mit diesem hier probiert, leider ohne Erfolg: (Fehlermeldung beim Compilern)

Dim Volt as Single
Dim V as String*10
Dim Eu as Word

Eu = 1023
Volt = Eu*Ref
V=Str(Volt)
V=Format(v, "0.00")

Lcd V ; "Volt"

m@rkus33
26.12.2005, 11:29
@Grillmeister Markus

Fusing FUNZT!! Danke das wars was mir hier gefehlt hat! MERCI

Gruß
Markus

Ratber
26.12.2005, 13:04
@Markus



leider geht das nur bei dem ADC Wert von 1023, andere Werte werden dann wieder mit den ellenlangen Nachkommastellen ausgegeben.

Stimmt,hab den beknackten Rechenfehler vergessen.