dreadbrain
02.12.2008, 21:16
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
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