- fchao-Sinus-Wechselrichter AliExpress         
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
    51
    Beiträge
    128

    Zwei Byte zusammenführen und auf Display darstellen

    Anzeige

    E-Bike
    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
    50
    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
    51
    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
  •  

Solar Speicher und Akkus Tests