Naja da habe ich herausgefunden, dass prinzipiell die Ansteuerung
funktioniert. Außerdem dachte ich, dass dies nun eher ein neuer Fehler
ist und das vorherige dazu keine Erkenntnisse liefert.
Ich wollte keinen mit so viel Text überhäufen. Vielleicht ist das ja
ein leicht zu klärendes Phänomen.
Mir ist jetzt noch aufgefallen, dass der Text auch Fehler aufweist. Die
Zeichen sind zwar da, aber es fehlen oft Pixel. In bestimmten
konstillationen verschwinden einige Zeichen ganz..
http://www.freak5mynew.no-ip.info/Muell/DisplayText.jpg
Ich habe den Buchstaben alle zwei Zeichen einmal hochgezählt.
Eigentlich sollte etwas in dieser Richtung erscheinen:
http://www.freak5mynew.no-ip.info/Muell/DisplayText.gif
Nur das ebend mit jeweils doppelten Zeichen.
Eigenartigerweise wird z.B.: das "!" gar nicht angezeigt, obwohl das
vorher funktioniert hat(dafür haben andere Zeichen vorher nicht
funktioniert)
Der Code(r19 ist der zu schreibende Wert. R20 ist der Zähler und r16
wird durch eine Funktion ausgegeben)
LDI r19, 0
LDI r20, 64
Vollschr1:
mov r16, r19
rcall DataWrite
LDI r16, 0b11000000
rcall CommandWrite
mov r16, r19
rcall DataWrite
LDI r16, 0b11000000
rcall CommandWrite
inc r19
dec r20
BRNE Vollschr1
Das lustige ist, dass Pixel, die bei einem Buchstaben da waren, beim
nächsten Buchstaben wieder verschwunden sein können. Die Timings machen
nichts aus...
Wenn ich zum Beschreiben des Displays dieses Muster nehme
1100110011000011
Anstatt dieses
1111111100000000
oder dieses
1010101010101010
zu wählen kommt auch irgend ein zufälliges Muster. Das kann ich mir
einfach nicht erklären.
Die Timings konnte ich übrigens um den Faktor 1000 verringern, ohne
dass es mehr Fehler gab. Über 4sek sind die Timings sicher auch
übertrieben und vermeiden tut das auch nichts.
Naja bei dem B denkt man fast, dass man ein E hat. Da fehlen zu viele
Pixel.
Bei dem e und dem x besteht verwechslungsgefahr, da nur 3 Pixel
gezeichnet werden und das b kann eher ein o sein.
http://www.freak5mynew.no-ip.info/Muell/DisplayText.jpg
Dort habe ich einfach einige Zeichen durchgezählt, indem ich ein
Register hochgezählt habe. Da sind einige Zeichen fast gar nicht
draufgekommen. Andere sehr gut.
Dabei habe ich z.B.: Das "!" Welches gar nicht drauf war vorher
einwandfrei auf dem ganzen Bildschirm ausgegeben.
Merkwürdig finde ich, dass viele Buchstaben nur bedingt ausgegeben
werden, so dass Pixel fehlen.
Erst dachte ich, das liegt an der Kontrastspannung, weil viele Pixel
auch verdammt blass sind. Aber ich habe da 22.5V drauf und das ist
Bedingt durch die 12V Leitung meines Netzteils, welche nicht die vollen
12V sondern eher 11V liefert.
Das mit den Pixeln hätte ich mir ja dadurch erklären können, dass
einige einfach tot sind, aber ich kann den bildschirm einfach komplett
weiß oder komplett schwarz machen, ohne das Fehler auftreten. Auch ein
1px Streifenmuster wird fehlerfrei angezeigt.
Aber schon das versetzen der Streifen kann Fehler hervorrufen.
Ich verstehe das irgendwie nicht. Dem Controller müsste das Muster doch
egal sein. Wenn überhaubt, dann sollte sich vielleicht das Timing
ändern...
Ein gutes Beispiel sind die "(" und ")" Zeichen.
Bei dem "(" fehlen mindestens drei Pixel, was im Bezug auf die
restlichen Zeichen fast sogar gut ist.
Oder muss ich dieses Rom vorher auch Aktivieren, damit die Buchstaben
keine Grafikfehler beinhalten? Ich habe das eigentlich anders
verstanden.
22,5V Kontrastspannung? Hast du dich da nicht verschrieben? Das ist
ziemlich hoch. Meine T6963C-Displays arbeiten beim Kontrast mit max.
-12V.
Gruß Elektrikser
Ach ich meinte zu Kontrast zu 12V gemessen. Das waren also -11.5 im
Verhältnis zu GND.
Wenn ich das Poti nur ganz leich zu einer seite drehe wird es schnell
blass auf dem Bildschirm und nach ungefähr 0.1 Umdrehungen ist das
Display kokmplett weiß. Das ist praktisch nichts. Ich könnte mir das
Potentiometer eigentlich sparen, oder sollte darüber nachdenken, die
Wiederstände zu GND zu erhöhen, damit ich mit dem Poti noch irgendwas
anfangen kann. Aber eigentlich ist der Auschlag so wie so schon fast
auf der maximal möglichen Kontrastspannung. Das Poti welches zwischen
den Widerständen und dem Inverter liegt ist ja so wie so voll zum
Inverter gedreht.
GND-10KOhm-10KOhmPoti-Inverter
Hier habe ich noch einmal das klassische Streifenmuster aufgezeichnet.
Diesmal habe ich aber die obere Hälfte einfach weiß gezeichnet.
Es ist kein Fehler zu erkennen.
http://www.freak5mynew.no-ip.info/Muell/DisplayOK_ObenGel.jpg
Kann es sein, dass das Display mit einem zunehmenden Schwarzanteil
irgendwie überlastet wird? Aber das kann eigentlich nicht sein, weil
man sonst gar keinen Text anzeigen lassen könnte!
http://www.freak5mynew.no-ip.info/Muell/DisplayOK_UntenKomp.jpg
Das hier funzt auch. Ich habe extra nicht alles verändert, damit ich
auch den tollen Kontrast meines Displays bewundern könnt.
Kann irgendjemand das erklären?
Wo ist der unterschied zwischen dem hier, oder dem Ausdehnen des
Musters auf den gesampten Bildschirm?
Was willst du uns eigentlich mit deinen Fotos zeigen?
Deine Streifen und Muster mögen zwar beeindruckend sein, aber ist es
auch das, was du programmiert hast??
Wenn ich bei meinem T6963-LCD den Controller ziehe und ein geeignetes
Netzteil nehme, was neben den +5V auch die -9V erzeugt, dann habe ich
auch zufällige Muster auf dem LCD (siehe Bild). Manchmal blinkt da
sogar etwas. Oft ist es aber einfach nur gleichmäßig leer (also kein
Muster).
Wenn du ergründen willst, ob dein LCD korrekt arbeitet, dann musst du
systematisch vorgehen. Da bringt es nix, Streifen oder Muster zu
erzeugen, die kannst du nicht oder nur schwer auf Korrektheit
überprüfen.
Du musst da Text ausgeben, denn nur dann kannst du ohne großen Aufwand
feststellen, ob auch der Text, den du programmiert hast (und nur der
und kein anderer!!!) an der Stelle, die du dafür vorgesehen hast (und
nur dort und nicht irgendwoanders!!!), erscheint. Erst wenn die
Textausgabe hundertprozentig und reproduzierbar klappt, lohnt es sich,
mal über Grafik nachzudenken.
...
Woher nimmst du die Gewissheit, dass die Muster fehlerfrei erzeugt
werden. Bist du sicher, dass dein Wissen schon ausreicht, Grafiken auf
dem LCD auszugeben? Ich halte das für Zufall.
Ich glaube bald, Hubert hatte Recht, das LCD wäre woanders wirklich
besser aufgehoben...
(http://www.mikrocontroller.net/forum/read-1-179974.html#180885)
...
Solange man die Grafiken nicht Pixelgenau positionieren möchte, sondern
auf der y-Achse in 8px Schritten läuft ist das Ausgeben doch kein
Problem??
Der Unterschied zwischen einem Pixel und einem Bild ist bei den
Displays doch eigentlich nicht vorhanden. Man muss einfach ein paar
Pixel hinterherschieben und schon hat man ein Bild.
Meinst du, dass es ein Zufall ist, dass die Pixel genau da sind, wo ich
sie hinhaben wollte?
Eine Eigenart ist, dass ich jedes Muster, welches ich ausgeben wollte
bis jetzt fehlerfrei ausgegeben habe, wenn ich die erste Hälfte des
Bildschirms weiß gemalt habe. Das irretiert mich sehr....
Wobei mir auffällt, dass ich mich sicher auch noch um den Speicher des
Textmodes kümmern sollte, wenn ich diesen nicht ganz abgeschaltet
habe.
Was noch nicht erklärt, warum Pixel im Textmode fehlen, wenn ich das
Display auf Textmode only stehen habe und warum alles funktioniert,
wenn der Grafikmodus an ist und die erste Hälfte mit weiß beschrieben
wurde....
Schachbrettmuster werden so in allen Variationen fehlerfrei dagestellt.
Mit fehlern werden sie dagestellt, wenn sie den ganzen Bildschirm
bedacken sollen...
Meinen Namen kann ich auf dem Display im Textmodus auch schreiben. Das
funktioniert aber nur in gewissen bereichen des Displays und es fehlten
3px beim "B".
Das finde ich immer noch eigenartig.
Das mit den Fehlern kommt übrigens auf die Position an.
In Zeile 1 und 2 verschwindet die Schrift fast vollkommen. in 3 ist
sie zum Teil fehlerhaft und in Zeile 4 ist alles zu 100% OK!
@freak5:
Bendix, wenn deine Fehler immer an den selben Stellen des Displays
sind, dann könnten (Hardware-) Fehler im RAM sein (evtl. durch ESD
verursacht?). Oder Pixelfehler im Display (Verbindung Platine ->
Displayträger-Glasplatte).
Teste es doch erstmal im Textmodus mit verschiedenen Zeichen (den
gesamten Zeichensatz), dann im Grafik-Modus das Verhalten benachbarter
Pixel in den fehlerhaften Bereichen.
Als Fehler kommen hauptsächlich in Betracht:
Im RAM:
- Schluss nach GND
- Schluss nach Vcc
- Schluss zum Nachbarbit
An der Verbindung Platine-Display:
- Schluss zur Nachbarleitung
- Leitungsunterbrechung
Aus welchem Material ist eigentlich die blaue Matte, auf der du
arbeitest? Ist die antistatisch??
...