www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Lcd 2 zeilig initialisieren


Autor: Jogi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Es gibt mal wieder eine Frage zum initialisieren von einem LCD Display.
Erstmal Hardware:
Atmega 8535 mit 20MHZ Quarz
LCD161A von Reichelt

Ich habe es so angeschlossen wie im Tutorial hier. (4bit Mode).
Es klappt auch alles ganz gut, auch mit der Ausgabe auf dem Display, 
aber ich kriege es einfach nicht hin die 2. Hälfte des Displays (1x16) 
zu beschreiben, nur die ersten 8 Zeichen gehen. Ich vermute das die 
initialisieren Sache nicht richtig klappt, denn wenn ich den Kontrast so 
stark mache, dass ich nur noch schwarze Vierecke sehe, dann sehe ich 
diese auch nur bei den ersten 8 Zeichen.  Als Anhang ist der c-code, wo 
auch die Initialisierungsfunktion enthalten ist, wo ja der Fehler sein 
sollte. Kann sich den jnd. mal anachauen? Ich weiß einfach nicht weiter.
PS: Nehmt die Kommentare nicht zu ernst, ich habe den Code teilweise 
kopiert (zB Tutorial) und dann verändert ohne die Kommentare zu ändern.
Danke im Vorraus
Jogi

Autor: Otto (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Jogi,

>Als Anhang ist der c-code, wo

ja wo denn ?

Otto

Autor: Wolfgang (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
3 mal enable am anfang vergessen ?

Autor: Christoph (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich hab hier ein 1*16 Zeichen LCD rumliegen das wie ein 2*8 LCD 
angesteuert werden will. D.h. nach den ersten 8 Zeichen musst du an 
einer anderen Speicheradresse weiterschreiben. Klingt so, als wäre das 
bei deinem genauso. Wenn du die ersten 8 Zeichen korrekt benutzen kannst 
sollte mit der Initialisierung eigentlich alles in Ordnung sein.

Autor: Jogi (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
so, hier nochmal der c-code, weiß auch net warum es beim ersten mal 
nicht wollte.
3mal enable hab ich, das eigentliche initialisieren klappt ja, denn ich 
bekomme ja über den 4bit Modus eine gescheite Ausgabe hin. Das mit de 
Adressensprung hab ich auch schon wo gelesen, hat bei mir aber auch 
nichts gebracht (lcd_command(0xA8);). Meine vermutung ist immer noch das 
bei der initialisierung was falsch läuft (wegen der Kontrast Sache, 
siehe erster Post), evtl. ein Timing Problem?
Das hier steht im Datasheet:

Power On
|
Wait for more than 15ms after VDD rises to 4.5V
|
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0 0 0 1 1   * *
BF cannot be checked before this instruction.
Function Set
|
Wait for more than 4.1ms
|
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0 0 0 1 1   * *
BF cannot be checked before this instruction.
Function Set
|
Wait for more than 100ms
|
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0 0 0 1 1   * *
BF cannot be checked before this instruction.
Function Set
|
|
|
|
|
BF can be checked after following
instruction.
When BF is not checked, the waiting time
between instructions is longer than execution
instruction time.
|
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0 0 0 1 1 N F  
Function Set (Specify the number of display
lines and character font.) The number of
display lines and character font cannot be
changed afterwards.
0 0 0 0 0 0 1 0 0 0 Display Off
0 0 0 0 0 0 0 0 0 1 Display Clear
0 0 0 0 0 0 0 1 I/D
S
Entry Mode Set
|
|
â
Initialization ends

Nach den ersten 3 "0011" kann ich ja aber nur erstmal "0010" an die 
Ports legen, um in den 4bit Modus zu schalten. Ist es dann evtl. schon 
zu spät wegen:"The number of display lines and character font cannot 
bechanged afterwards"?? Aber dann könnte man ja garnicht mit meiner 
Beschaltung in den 2.zeiligen Modus wechseln.
Greez

Autor: Jogi (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
nochmals sorry, der letzte Quellcode war ja nur die Headerdatei...;)

Autor: Jogi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, ich habs. War wohl ein Timingfehler, hab jetzt einfach 3mal 
hintereinander das Kommando für 4bit, 2zeilig geschickt. Jetzt gehts. 
Thx

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.