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
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...
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
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...
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...
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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.