Forum: Mikrocontroller und Digitale Elektronik LCD an Mega8 die Xte


von Alexander Muthmann (Gast)


Lesenswert?

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

von Hannes L. (hannes)


Lesenswert?

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

...

von Alexander Muthmann (Gast)


Lesenswert?

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!

von Hannes L. (hannes)


Lesenswert?

Ja, sorry, meine "Temp"s heißen wl und wh...

...

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.