Problem mit LCD Initialisierung

OP #1055858
Lesenswert?
• ▲
▼
Hi,

ich versuche zur Zeit mein LCD 162 von Displaytech (Datenblatt im 
Anhang) zu programmieren. Ich verwende einen ATMEGA8535 und programmiere 
in Assembler. Nun habe ich das Problem, dass sobald ich bei der 
Initialisierung die Daten für den Set_Function schicken möchte, das LCD 
mir überhaupt nichts mehr anzeigt. Wenn ich kein Set_Function übertrage 
sondern nur Display_on, dann kann ich mir Buchstaben und Zahlen darauf 
anzeigen lassen. Jedoch leider nur in der 1. Zeile. Weiss vielleicht 
jemand warum mein LCD nichts mehr anzeigt, wenn ich die Daten für den 
Set_Function schicke? Wäre echt wenn ihr mir da weiterhelfen könntet.

Gruss
Sven
OP #1055868
Lesenswert?
• ▲
▼
Hier könnt ihr noch meine Initialisierung sehen. Habe mich dabei genau 
an das Datenblatt gehalten. Das Unterprogramm MS15T ist eine 
Zeitschleife mit 15 ms Verzögerung.

rcall MS15T    ;Wecken - Anfang
ldi A, 0x30    ;DB4 + DB5 auf High
out PortC, A
sbi PORTA, 3    ;Enable High
cbi PORTA, 3    ;Enable Low

rcall MS15T
ldi A, 0x30    ;DB4 + DB5 auf High
out PortC, A
sbi PORTA, 3    ;Enable High
cbi PORTA, 3    ;Enable Low

rcall MS15T
ldi A, 0x30    ;DB4 + DB5 auf High
out PortC, A
sbi PORTA, 3    ;Enable High
cbi PORTA, 3    ;Enable Low

;Set Function
rcall MS15T
ldi A, 0x38    ;Funktion: Alle 8 Bit werden auf einmal übertragen, 2. 
Zeile des Displays aktiviert, 5x7 Dots pro Zeichen
out PORTC, A
sbi PORTA, 3    ;Enable High
cbi PORTA, 3    ;Enable Low

;Display löschen
rcall MS15T
ldi A, 0x01
out PortC, A    ;Funktion: Display löschen
sbi PORTA, 3    ;Enable High
cbi PORTA, 3    ;Enable Low

;Entry Mode Set
rcall MS15T
ldi A, 0x06    ;Funktion: Cursor wird nach dem Ausgeben eines 
Buchstabens nach rechts geschoben
out PORTC, A
sbi PORTA, 3    ;Enable High
cbi PORTA, 3    ;Enable Low

;Display On/Off
rcall MS15T
ldi A, 0x0C    ;Funktion: Display an, Cursor aus, Cursor blinkt nicht
out PORTC, A
sbi PORTA, 3    ;Enable High
cbi PORTA, 3    ;Enable Low
OP #1058631
Lesenswert?
• ▲
▼
Hi,
mittlerweile funkitoniert die Initialisierung. Hast doch recht gehabt 
Benedikt. Ich habe am Anfang zwischen der Enable High-Low Flanke zwei 
Nops reingesetzt.

sbi PORTA, 3    ;Enable High
nop
nop
cbi PORTA, 3    ;Enable Low

Das hat leider nichts gebracht. Anschließend habe ich Enable über ein 
Register gesetzt bzw. gezurückzusetzt.

ldi A, 0x08
out PortA, A
ldi A, 0x00
out PortA, A

Ich denke das es nun funktioniert weil das Display nun zwischen den 
Flanken genug Zeit hat um den Befehl zu bearbeiten. Nochmals Danke.

Gruss Sven

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.