malthy
28.06.2013, 20:24
Hallo!
Ich kämpfe gerade mit einem TG12864B 128x64 Pixel Dotmatrix LCD (Controller KS0108, wie's sie u. a. bei Pollin gibt). Habe die Dinger schon vielfach verwendet, immer ohne Problme. Heute hakt es aber gewaltig und ich habe keinen blassen Schimmer wo das Problem ist :-( Vielleicht seh ich den Wald vor Bäumen nicht ...
Hier zunächst ein runtergekochtes Stück Bascom Code, bei dem das Problem auftritt:
$regfile = "m8def.dat"
$crystal = 8000000
$framesize = 64
$swstack = 64
$hwstack = 64
$baud = 9600
$lib "glcdKS108.lib"
Config Graphlcd = 128 * 64sed , Dataport = Portb , Controlport = Portd , Ce = 1 , Ce2 = 0 , Cd = 7 , Rd = 6 , Reset = 4 , Enable = 5
Setfont Font8x8
Dim I As Byte
Cls
Showpic 0 , 0 , M22
Wait 3
Do
Cls
Lcd "i= " ; I
Incr I
Waitms 500
Loop
End
M22:
$bgf "pics\m22.bgf"
$include "font8x8.font"
Das Problem ist, dass die Darstellung auf dem LCD auf seltsame Wiese "corrupted" ist. Wenn ich den o.g. Code ausführe, bekomme ich folgendes zu sehen:
http://youtu.be/VBZLlThzQUE
Oder nochmal in Beispielbildern:
25898 2589925900 25901
Das erste Bild auf dem Display hat die daneben gezeigte Vorlage (als "m22.bgf" eingebunden). Irgendwie doppelt sich also die Darstellung der zweiten Displayhälfte. Text (mittels Befehl LCD(String)) wird nach dem ersten CLS in der untersten Zeile ausgegeben, danach wandert die Darstellung nach oben. Das LCD ist defintiv so angeschlossen, wie im Code behauptet, ich habe das mittlerweile fünf mal nachgemessen. Außerdem habe ich das ganze auf einem anderen LCD exakt so reproduzieren können, das LCD ist also in Ordnung. Auch den Controller habe ich gewechselt, probiert habe ich mit einem mega8 und zwei mega168, immer mit dem gleichen Resultat. Ich weiß dass es hin und wieder Timing Probleme mit diesem LCD Kontroller gibt, allerdings eigentlich erst >8MHz, außerdem sehen die anders aus. Trotzdem habe ich das ganze auch nochmal mit 1 MHz Prozessortakt probiert, ebenfalls mit dem gleichen Ergebnis. Also ich glaube ja fast dass ich etwas extrem dämliches übersehe, aber ich finde das Problem einfach nicht. Hat jemand einen Tipp für mich? Würde mich sehr freuen!
Danke!
Malte
Ich kämpfe gerade mit einem TG12864B 128x64 Pixel Dotmatrix LCD (Controller KS0108, wie's sie u. a. bei Pollin gibt). Habe die Dinger schon vielfach verwendet, immer ohne Problme. Heute hakt es aber gewaltig und ich habe keinen blassen Schimmer wo das Problem ist :-( Vielleicht seh ich den Wald vor Bäumen nicht ...
Hier zunächst ein runtergekochtes Stück Bascom Code, bei dem das Problem auftritt:
$regfile = "m8def.dat"
$crystal = 8000000
$framesize = 64
$swstack = 64
$hwstack = 64
$baud = 9600
$lib "glcdKS108.lib"
Config Graphlcd = 128 * 64sed , Dataport = Portb , Controlport = Portd , Ce = 1 , Ce2 = 0 , Cd = 7 , Rd = 6 , Reset = 4 , Enable = 5
Setfont Font8x8
Dim I As Byte
Cls
Showpic 0 , 0 , M22
Wait 3
Do
Cls
Lcd "i= " ; I
Incr I
Waitms 500
Loop
End
M22:
$bgf "pics\m22.bgf"
$include "font8x8.font"
Das Problem ist, dass die Darstellung auf dem LCD auf seltsame Wiese "corrupted" ist. Wenn ich den o.g. Code ausführe, bekomme ich folgendes zu sehen:
http://youtu.be/VBZLlThzQUE
Oder nochmal in Beispielbildern:
25898 2589925900 25901
Das erste Bild auf dem Display hat die daneben gezeigte Vorlage (als "m22.bgf" eingebunden). Irgendwie doppelt sich also die Darstellung der zweiten Displayhälfte. Text (mittels Befehl LCD(String)) wird nach dem ersten CLS in der untersten Zeile ausgegeben, danach wandert die Darstellung nach oben. Das LCD ist defintiv so angeschlossen, wie im Code behauptet, ich habe das mittlerweile fünf mal nachgemessen. Außerdem habe ich das ganze auf einem anderen LCD exakt so reproduzieren können, das LCD ist also in Ordnung. Auch den Controller habe ich gewechselt, probiert habe ich mit einem mega8 und zwei mega168, immer mit dem gleichen Resultat. Ich weiß dass es hin und wieder Timing Probleme mit diesem LCD Kontroller gibt, allerdings eigentlich erst >8MHz, außerdem sehen die anders aus. Trotzdem habe ich das ganze auch nochmal mit 1 MHz Prozessortakt probiert, ebenfalls mit dem gleichen Ergebnis. Also ich glaube ja fast dass ich etwas extrem dämliches übersehe, aber ich finde das Problem einfach nicht. Hat jemand einen Tipp für mich? Würde mich sehr freuen!
Danke!
Malte