Forum: Mikrocontroller und Digitale Elektronik LCD schreibt keine zeichen sonder wechselt die zeile


von Daniel M. (erfolgstyp)


Angehängte Dateien:

Lesenswert?

hallo

ich habe ein problem mit meinem lcd display von pollin (best. 120591
datenblatt im anhang).
und zwar kann ichs zwar initialisieren und auch befehle senden (kursor
nach links und rechts laufen lassen, blinken usw.).
nur wenn ich zeichen senden möchte springt der cursor in ne andere zeile
anstatt ein zeichen zu schreiben...

kurzes beispiel:

hauptprogramm:
rcall warte1s        ;1 sekunde warten
rcall inc_cursor      ;cursor nach rechts verschieben
rcall warte1s        ;1 sekunde warten

ldi r17, 0x42            ;"R"laden
rcall senddaten        ;"R senden

rcall warte1s        ;1 sekunde warten
rcall inc_cursor      ;cursor nach rechts verschieben
rcall warte1s        ;1 sekunde warten
rcall inc_cursor      ;cursor nach rechts verschieben
rcall warte1s        ;1 sekunde warten
rcall cursor_home      ;cursor nach links oben verschieben
rjmp hauptprogramm

wenn ich das schreibe springt der cursor nach rechts springt in die
zweite zeile springt wieder nach rechts und dann in seine home position.
hab den code im anhang und das datenblatt vom lcd auch hoffe irgendwer
kann mir helfen bin mittlerweile echt ratlos...

danke im vorraus
mfg daniel

von Daniel M. (erfolgstyp)


Angehängte Dateien:

Lesenswert?

sorry datenblatt vergessen

von Michael S. (msk) Benutzerseite


Lesenswert?

Anhand Deines Beispiels kann man nicht wirklich sehen, was Du da 
sendest. So kann man nur raten. Ist zum Beispiel RS auf 1 gesetzt? 
Passen Pin-Zuordnung und Deine gesetzten Bits auch zusammen?

Edit: Habe ganz übersehen, dass Du Deinen Code ja angehängt hattest...

von Daniel M. (erfolgstyp)


Lesenswert?

erstmal danke für deine antwort

ja RS ist bei "rcall senddaten" auf 1 gesetzt (siehe anhang)
die pinzuordnung passt auch (habs schon 1000 mal überprüft :-() zudem 
denk ich könnt ich dann keine befehle senden weil ich ja dann nen 
undefinierten zustand an dem pin hätte (bei mir PD4)

hier wär kurz nochmal der code der im anhang ist ja doch recht lang...

;Daten an LCD schicken (Unterprogramm)
senddaten:          ;Sprungmarke
mov r18, r17        ;Sicherungskopie (von r17 in r18 laden)
swap r17          ;Nibble vertauschen
andi r17, 0b00001111    ;nicht verwendetes Nibble auf 0 setzen
sbr r17, 1<<4        ;auf Daten Stellen
out portD, r17        ;Daten Übertragen
rcall enable        ;Enable impuls
;erstes nibble geschafft
andi r18, 0b00001111    ;nicht verwendetes Nibble auf 0 setzen
sbr r18, 1<<4        ;auf Daten stellen
out portD, r18        ;Daten Übertragen
rcall enable        ;Enable Impuls
rcall warte5ms          ;warte 5ms
ret              ;zurück

von Michael S. (msk) Benutzerseite


Lesenswert?

Jep, ich hatte Deinen angehängten Code leider übersehen.
Du hast einmal in "sendbefehl" sbr und einmal cbr drin. Das heißt, Du 
setzt da schon RS nicht richtig? Die eine Hälfte kommt als Befehl, die 
andere als Daten an oder verstehe ich das falsch?
Wenn das so wäre, dann verwirrst Du das Teil schon bei Befehlen mit 
halben Datenpaketen...

von Daniel M. (erfolgstyp)


Lesenswert?

ja hast schon recht damit bring ich das gut teil völlig durcheinander 
hab ich übersehen hat nur leider nix gebracht hab genau den gleichen 
fehler wieder...

hab da vorhin ein bisschen dran rumgespielt um zu sehen ob er n andern 
fehler macht wenn ich beide einfach änder und hab dann wohl übersehn den 
einen wieder umzuschreiben ...verzweiflungstaten halt...

von Michael S. (msk) Benutzerseite


Lesenswert?

Münzi Münzi schrieb:
> ja hast schon recht damit bring ich das gut teil völlig durcheinander
> hab ich übersehen hat nur leider nix gebracht hab genau den gleichen
> fehler wieder...

Naja, zumindest ist ein Fehler schon mal raus. Wenn sich bei Ändern des 
RS-Setzens kein Unterschied ergibt, würde ich mal schauen, ob die 
RS-Leitung auch wirklich an dem Pin klemmt, dessen Bitstelle Du da 
beschreibst.

von Daniel M. (erfolgstyp)


Lesenswert?

ich könnt scheiße schrein
hab das layout in sprint erstellt und blöd wie ich bin die pinnummern 
falsch aufgschrieben habs grad nochmal mit der target bibliothek 
verglichen und das feststellen müssen mich furchtbar doof fühl

also 1000 dank dass du dich zu so später stunde noch mit sonem mist 
abgibst
gute n8
mfg

von Michael S. (msk) Benutzerseite


Lesenswert?

Münzi Münzi schrieb:
> ich könnt scheiße schrein
> hab das layout in sprint erstellt und blöd wie ich bin die pinnummern
> falsch aufgschrieben habs grad nochmal mit der target bibliothek
> verglichen und das feststellen müssen *mich furchtbar doof fühl*
>
> also 1000 dank dass du dich zu so später stunde noch mit sonem mist
> abgibst
> gute n8
> mfg


Kein Problem. Freut mich, Dir erfolgreich geholfen zu haben. 
*Bierchenkipp N8 :)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.