kannst du das nicht einfach so ausgeben:
Lcdat 2, 2, "Temperatur: ", Db0(5), ",", Db0(4)
Hallo,
ich bekomme über einen CAN Bus zwei Werte als Byte übertragen und möchte diese zusammenführen und als Temperatur auf einem LCD Display anzeigen
Ich habe es so versucht:
(die wichtigsten Ausschnitte)
1. Problem: die Nachkommastellen sind bis zu 9 Stellen langCode:Config Graphlcd = 128 * 64sed , Dataport = Porta , Controlport = Portc , Ce = 4 , Ce2 = 3 , Cd = 6 , Rd = 7 , Reset = 5 , Enable = 2 dim temp_x as single dim temp as single temp_x = Db0(4) / 2 'hier steht der Nachkommawert temp = Db0(5) + temp_x 'hier steht der Wert vor dem Komma Lcdat 2,2 , "Temperatur: ", Fusing(temp ; "#.#")
2. Problem: Fusing funktioniert auf einem LCD Display offenbar nicht
Kann mir jemand helfen?
kannst du das nicht einfach so ausgeben:
Lcdat 2, 2, "Temperatur: ", Db0(5), ",", Db0(4)
tja, wenn Fusing auf dem LCD-Befehl direkt nicht will, dann verwend doch einfach nen String als Puffer und geb den dann aus.
Vor den Erfolg haben die Götter den Schweiß gesetzt
Wie schon gesagt:
1. mit makeint (LSB,MSB) die 2 Byte zum Single machen
2. Zwischenvariable: dim Zwischenvariable as String * 8 Zeichen
3. Zwischenvariable =Fusing(Wert , "#.&&&&") (aus 1.)
4. Bsp. Lcdat 5 , 6 , "Zwischenvariable= " ; Zwischenvariable; " °C"
schau mal in der Hilfe nach Fusing, dort gibt es eine Wandlung mit oder ohne Rundung.
Gruß MAT
Danke für die viele Tips!
Ich werde wohl den einfachsten Weg gehen und den Vorschlag von for_ro umsetzen
Lesezeichen