- LiFePO4 Speicher Test         
Ergebnis 1 bis 10 von 10

Thema: LCD Anzeige

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    22.01.2006
    Ort
    Nidda
    Alter
    51
    Beiträge
    180

    LCD Anzeige

    Anzeige

    Praxistest und DIY Projekte
    Hallo,

    ich steh mal wieder auf dem Schlauch.
    Über folgenden Code werden Temperaturen, ohne Kommastelle, auf einem LCD Display angezeigt:

    Code:
    Sub Anzeige
    
     Locate 1 , 1
     Lcd "Dach Wass +/- TT"
    
     Locate 2 , 1 : Lcd " " ; Dg1 ; "   " ; Dg2 ; "  " ; Delta ; TT
    
    End Sub
    Mein Problem:
    Wenn z.B. die Variable Dg1, die zuvor 11 angezeigt hat, auf 9 springt, bleibt eine eins stehen da nur noch die erste Stelle überschrieben, und die zweite Stelle nicht gelöscht wird.
    Wenn ich das Display vor jeder Anzeigenänderung lösche, flackert es.

    Was kann ich da tun?

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    17.09.2005
    Beiträge
    276
    locate 1,1
    case of Grad_Celsius
    0..9 : Lcd ' '
    10..99:LCD ' '
    end of Case Grad_Celsius
    LCD Grad_Celsius

    Gento

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    22.01.2006
    Ort
    Nidda
    Alter
    51
    Beiträge
    180
    soweit o.k.
    Allerdings werden hier 4 verschiedene Werte hintereinander angezeigt.
    Variable "DG1", "DG2", "Delta" und "TT"
    Jede Variable benötigt max 2 Stellen

    Der von dir vorgesehene Cord funktioniert in diesem Fall leider nicht.

    Gibt es noch eine Möglichkeit?

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von Jaecko
    Registriert seit
    16.10.2006
    Ort
    Lkr. Rottal/Inn
    Alter
    42
    Beiträge
    2.009
    Alternativ auch mal den Befehl "Format" anschauen; kann zeitweise nützlich sein.
    #ifndef MfG
    #define MfG

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    17.09.2005
    Beiträge
    276
    Zitat Zitat von elkokiller
    soweit o.k.
    Allerdings werden hier 4 verschiedene Werte hintereinander angezeigt.
    Variable "DG1", "DG2", "Delta" und "TT"
    Jede Variable benötigt max 2 Stellen
    Unklarer geht es wohl kaum.

    Zeitlich hintereinander oder am LCD wie Locate 1,1 Locate 1,5 ?

    Gento

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    19.08.2004
    Beiträge
    197
    Was auch eine Alternative ist:
    den Format-Befehl für die Variablenart von DG1, DG2, Delta und TT laut Hilfe anwenden und dann den Locate-Befehl auifteilen:
    zB.
    Locate 2 , 2 : Lcd Dg1
    Locate 2 , 8 : Lcd Dg2
    Locate 2 , 14 : Lcd Delta
    Locate 2 , 17 : Lcd TT

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    706
    Wenn z.B. die Variable Dg1, die zuvor 11 angezeigt hat, auf 9 springt, bleibt eine eins stehen da nur noch die erste Stelle überschrieben, und die zweite Stelle nicht gelöscht wird.
    Passiert das vielleicht eher nur bei der letzten Variablen, oder tatsächlich auch schon bei der ersten? Das könnte ich mir nur schwer vorstellen, denn beim Überschreiben sollte eigentlich nix mehr stehenbleiben...

  8. #8
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    22.01.2006
    Ort
    Nidda
    Alter
    51
    Beiträge
    180
    ja, du hast recht. Es passierte bisher immer nur bei der letzten Variable.
    Da die Werte der ersten beiden aber immer im zweistelligen Bereich lagen, fiel da nicht weiter auf.

    Den Formatbefehl kann ich offensichtlich für Integer nicht anwenden.
    Geht das nur bei String?

  9. #9
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    706
    O.k., das passt. Mit dem "format"-Befehl habe ich noch keine weiterreichenden Erfahrungen - ich hab´s in solchen Fällen immer auf die unelegante, aber wirkungsvolle Methode gemacht, einfach eine ausreichende Anzahl an Leerstellen an den Schluss der letzten (!) Zeile zu hängen. Die überdecken eventuelle Rest-Stellen zuverlässig, und wenn Du 4 zweistellige Werte hast, werden sie halt einfach ins Nirvana geschrieben. Also etwa so:

    Code:
    Locate 1 , 1 
     Lcd "Dach Wass +/- TT" 
    
     Locate 2 , 1 : Lcd " " ; Dg1 ; "   " ; Dg2 ; "  " ; Delta ; TT ;"         "
    Das wären hier 9 Leerstellen, denn Du hast ja als Minimum 4 einstellige Werte und 3 Leerzeichen, macht also 7 Zeichen. 9 Leerstellen hinterher, und eventuelle "Reste" aus der letzten Runde werden sicher überschrieben.

  10. #10
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    22.01.2006
    Ort
    Nidda
    Alter
    51
    Beiträge
    180
    Hey super!
    Auf die einfachsaten Dinge kommt mann meistens garnicht

    Danke!

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress