- LiFePO4 Speicher Test         
Ergebnis 1 bis 5 von 5

Thema: Zwei Byte zusammenführen und auf Display darstellen

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    03.10.2007
    Alter
    50
    Beiträge
    128

    Zwei Byte zusammenführen und auf Display darstellen

    Anzeige

    Powerstation Test
    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)

    Code:
    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?

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.113
    kannst du das nicht einfach so ausgeben:

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

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    50
    Beiträge
    2.253
    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

  4. #4
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    25.03.2006
    Ort
    Hinsdorf
    Alter
    49
    Beiträge
    381
    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

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    03.10.2007
    Alter
    50
    Beiträge
    128
    Danke für die viele Tips!
    Ich werde wohl den einfachsten Weg gehen und den Vorschlag von for_ro umsetzen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen