-         

Ergebnis 1 bis 2 von 2

Thema: Komplexe Anzeige auf LCD, Problem mit der Aktualisierung

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    06.04.2006
    Ort
    Bayern
    Alter
    27
    Beiträge
    182

    Komplexe Anzeige auf LCD, Problem mit der Aktualisierung

    Anzeige

    Hallo,

    für mein derzeitiges Projekt, ein Controllergesteuertes Labornetzteil, will ich eine Bedienoberfläche mit Menüführung realisieren.
    Dazu hab ich ein 4x20Zeichen Text LCD.

    Da ich auf jeder Menüseite mehrere Variablen und Strings anzeigen muss/will, ist das Display meistens gut gefüllt.
    Diese Variablen ändern sich dauernd und müssen somit möglichst rasch auch auf dem Display aktuell erscheinen.

    Zur Zeit wird das Display andauernd innerhalb der Programmschleife für die enstprechende Menüseite aktualisiert.
    Dabei entstehen im freien Bereichen komische Zeichen oder Teile des normalen Textes, obwohl sie dort nicht sein sollten.
    Ich denke das es ander Aktualisierungsrate/Ansteuerung des Displays liegt, obwohl es ja eigentlich nichts ausmachen sollte (evtl. Bug in den Bascomroutinen?) da ich ja immer die enstprechenden Startpositionen der Strings etc. vorgebe und somit in den freien Bereichen nix stehen dürfte.

    Meine Idee war auszuwerten, ob sich eine Variable geändert hat und nur die geänderte neu anzuzeigen.
    Nur ist das bei 8-10-Variablen pro Displayseite etwas aufwendig und speicherintensiv.

    Mal ein Ausschnitt des Displayinhaltes:

    Locate 1 , 1 : Lcd "3,3V:" ; I_ist_33 ; "mA/" ; "U:" ; Lcd_string4 ; "V"
    Locate 2 , 1 : Lcd "5,0V:" ; I_ist_5 ; "mA/" ; "I:" ; Lcd_string3 ; "mA"
    Locate 3 , 1 : Lcd Lcd_string1 ; "V+:" ; I_ist_pos ; "mA"
    Locate 4 , 1 : Lcd Lcd_string2 ; "V-:" ; I_ist_neg ; "mA"

    Diese Anweisungen werden ca alle 50ms wiederholt an das Display gesendet
    Die Strings werden vorher erzeugt und formatiert,
    die anderen Variablen sind nomale Words.
    Dabei entstehen nun besonders in den unteren beiden Zeilen (hinter dem "mA") komische Zeichenfolgen.

    Hat jemand eine Idee wie ich das Problem einfach und codesparend lösen könnte?

    mfg Benedikt

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    11.04.2005
    Beiträge
    1.469
    Hi,
    ich würde schon mal nicht die ganze Zeile neu schreiben, sondern nur die Werte an sich.
    Einmalig beim Aufrufen des Menüs
    Locate 1 , 1 : Lcd "3,3V: mA/ U: V:"
    Dann nur noch die Werte mit festem Format an die entsprechende Stelle setzen.
    Anzeige=str(LCD_I_ist_33)
    Anzeige = format(anzeige,00000)
    Locate 1,6
    Lcd Anzeige

    Die Aktualisierungsrate ist OK. 50mS sind ja recht lange.
    Die Ansteuerung mittels der Bascom Routinen ist eigentlich so ausgelegt, daß auch das langsamste Display mitkommen sollte.

    So lange du keine festen Längen für die Werte hast, kann ja immer mal Müll vom vorherigen Menü noch drinstehen, da du dann vielleicht nicht die
    ganze Zeile neu schreibst.

    Gruß
    Christopher

Berechtigungen

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