Lcd 2 zeilig initialisieren

Gast #552812
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
Gast #552832
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.
Gast #552950
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
Angehängte Dateien:

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.