Hallo, ich bin im moment mal wieder dabei ein bischen mit meinem Mega8 rumzuspielen und hab dazu jetzt auch nen LCD (2x24) ausgegraben. Angeschlossen ist es, es geht auch wunderbar (hab den Code ausm Tutorium verwendet) Nun hab ich allerdings mal eine oder 2 Fragen: wenn ich einen Text ausgebe, der länger als 24 Zeichen ist, dann werden die nächsten 16 Zeichen ins nichts geschrieben und dann erst das 41te Zeichen in die neue Zeile. Wie kann ich das verhindern? Und: wie kann ich mitm Cursor an eine bestimmte Stelle vom Display springen? Geschrieben wird das ganze in Assembler. Danke für eure Hilfe! Alex
Hier http://www.mikrocontroller.net/forum/read-1-164017.html#164026 findest du eine (etwas betagte) Routinendammlung für das 4x27-LCD. Dieses LCD enthält eigentlich zwei 2x27-LCDs, denn es hat intern 2 Controller. Die Routinensammlung enthält auch ein Macro namens Locate. Ich habe es jetzt mal auf 1 Controller mit 2 Zeilen reduziert, aber noch nicht getestet. Versuch mal damit dein Glück. Und lies auch mal den gesamten Thread, da werden schon einige deiner nächsten Fragen beantwortet. ;-)
1 | .macro locate ;Zeile (0...1), Spalte (0...23) |
2 | ;Positionierung der Ausgabeposition |
3 | ;Zeile in Bit 6, Spalte in den Rest: |
4 | push wl ;Register sichern |
5 | ldi wl,128+((@0 & 1)<<6)+(@1 & 63) |
6 | rcall lcd_command ;an LCD als Befehl ausgeben |
7 | pop wl ;Register wiederherstellen |
8 | .endmacro |
...
Juhu, du hast mir den Abend gerettet!!! Wunderbar, es geht! musste nur das wl noch in temp1 ändern, und jetzt kann ich springen soviel ich will, wunderbar... Danke!
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.