PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : LCD schreibt keine zeichen sondern wechselt die zeile



erfolgstyp
23.08.2009, 00:17
hallo
nachdem meine fräse jetzt funktioniert hab ich mich an ein neues projekt gewagt und hab promt ein neues problem und zwar

ich hab n lcd von pollin (bestellnummer 120591)
das kann ich 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 hoffe irgendwer kann mir helfen bin mittlerweile echt ratlos...

danke im vorraus
mfg daniel

hm_heli
02.09.2009, 19:54
hi, ich kenne jetzt nicht speziell den von Dir verwendeten µC,
aber ich denke, Du hast das Problem in
>>>sendbefehl:
>>>...
>>>andi r18, 0b00001111 ;nicht verwendetes Nibble auf 0 setzen
>>>sbr r17, 1<<4 ;auf Daten Stellen
>>>...

müßte das nicht auch r18 sein?

RoboHolIC
02.09.2009, 23:48
Hallo erfolgstyp.

Wenn Du dem LCD ein Zeichen schickst und stattdessen springt der Cursor, dann vermute ich, du bedienst die Register Select (R/S)-Leitung nicht und sie steht anfänglich gerade richtig zur Initialisierung des LCD-Moduls.

Anhand dieser Leitung unterscheidet der LCD-Controller, ob die eingehenden Daten Steuerbefehle oder Anzeigeinhalte sind.

Gruß
Christian.