www.mikrocontroller.net

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


Autor: Daniel Münzi (erfolgstyp)
Datum:
Angehängte Dateien:

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

Autor: Daniel Münzi (erfolgstyp)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
sorry datenblatt vergessen

Autor: Michael S. (msk) Benutzerseite
Datum:

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

Autor: Daniel Münzi (erfolgstyp)
Datum:

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

Autor: Michael S. (msk) Benutzerseite
Datum:

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

Autor: Daniel Münzi (erfolgstyp)
Datum:

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

Autor: Michael S. (msk) Benutzerseite
Datum:

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

Autor: Daniel Münzi (erfolgstyp)
Datum:

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

Autor: Michael S. (msk) Benutzerseite
Datum:

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

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.