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é