PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zwei Byte zusammenführen und auf Display darstellen



Duesentrieb
13.05.2010, 21:40
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)


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 ; "#.#")


1. Problem: die Nachkommastellen sind bis zu 9 Stellen lang
2. Problem: Fusing funktioniert auf einem LCD Display offenbar nicht

Kann mir jemand helfen?

for_ro
13.05.2010, 23:10
kannst du das nicht einfach so ausgeben:

Lcdat 2, 2, "Temperatur: ", Db0(5), ",", Db0(4)

Vitis
14.05.2010, 00:46
tja, wenn Fusing auf dem LCD-Befehl direkt nicht will, dann verwend doch einfach nen String als Puffer und geb den dann aus.

mat-sche
14.05.2010, 10:28
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

Duesentrieb
14.05.2010, 16:31
Danke für die viele Tips!
Ich werde wohl den einfachsten Weg gehen und den Vorschlag von for_ro umsetzen