Forum: Mikrocontroller und Digitale Elektronik LCD 4x16 Cursor geht, schreiben nicht


von André H. (s40t5)


Lesenswert?

Hallo,

leider muss ich auch mit einem Display Thread nerven... Ich habe ein 
4x16 mit KS0066 an einem Atmega32 auf dem STK500. Ich kann das Display 
initialisieren und z.B. in die erste Zeile schreiben. Ich kann auch den 
Cursor nach belieben an jede Position im Display setzen. Wenn ich dann 
aber versuche Daten zu schreiben z.B. in der (sichtbar) vierten Zeile, 
wandert zwar der Cursor um eine Position weiter, aber es erscheint kein 
Zeichen.

Also ich mache folgendes:


- warten
- init_lcd
- warten (Cursor blinkt an Position 0,0)
- schreibe 10x 'a' in die erste Zeile
- warten
- setzte Cursor in 4. Zeile an Position 5
- warten (Cursor ist in der 4. Zeile an Position 5 sichtbar und blinkt)
- schreibe 1x 'a' an momentane Cursor Position --> 'a' erscheint nicht, 
cursor wandert aber weiter

Für das Timing benutze ich nach der init Methode das Busyflag. Das 
scheint auch nach etlichen Tests richtig zu funktionieren. Kann es eine 
Situation geben in der der Cursor im Display an z.B. Position 4,5 (Zeile 
4, Position 5) angezeigt wird, aber die Daten die gesendet werden an 
einer anderen Position im Datenspeicher enden die mit der Cursor 
Position nicht korreliert, wenn man ausschliessen kann das nach dem 
positionieren des Cursors und senden der Daten die Position 
(programatisch) nicht verändert wird?

Viele Grüsse,

André

von Falk B. (falk)


Lesenswert?

Klingt so als ob das RS Bit nicht richtig angesteuert wird. Entweder 
Verkabelungs- oder Softwarefeler.

MFG
Falk

von André H. (s40t5)


Lesenswert?

Hallo,

war ein ganz dummer Fehler meinerseits... Ich habe im Datenblatt für 
Zeile 4 Position 0 den Wert 0x50 stehen, den habe ich per Command an das 
Display geschickt. Um aber eine DD RAM Adresse zu setzen muss das bit 7 
immer High sein, also muss ich eigentlich 0xD0 schicken. Shön blöd, 
vielleicht stolpert noch jemand darüber und findet dann hier Abhilfe.

Viele Grüsse und frohe Weihnachten,

André

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.