www.mikrocontroller.net

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


Autor: André Hildebrandt (s40t5)
Datum:

Bewertung
0 lesenswert
nicht 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é

Autor: Falk Brunner (falk)
Datum:

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

MFG
Falk

Autor: André Hildebrandt (s40t5)
Datum:

Bewertung
0 lesenswert
nicht 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é

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.