Hallo Leute,
ich habe hier ein Display mit 2x8.
Es lässt sich initialisieren und auch Zeichen wiedergeben. Allerdings
wir beim schreiben oder lesen aufs display die DDRAM-Adresse
incrementiert. Ist ja auch so eingestellt. Da ich aber immer das
Busy-Flag abfrage muss ich die DDRAM-Adresse korigieren.
Hier ist mein Problem dass es laut Datenblatt wie bei all den anderen
Hitachi kompatiblen displays ist. Allerdings ist es bei mir so dass sich
das display nach Beschreiben der DDRAM-Adresse nicht mehr ansprechen
lassen kann. Sprich ich lese nanach immer dass das Display Busy ist.
weiss einer nen Rat?
gruss,
pete
Hallo,
irgendwie komm ich hier nicht weiter.
in die 2te zeile komme ich erst wenn ich so lange schreibe bis ich bei
Adresse 0x40 gelandet bin. Somit funktionieren zumindest beide Zeilen.
Aber ich kann immer noch nicht den Cursor auf eine bestimmte position
setzen.
zwischen jedem schreiben und lesen warte ich 2msec.
die Initialisierung sieht wie folgt aus:
FunktionSET (8bit, 2-zeilig, 5x7font)
DisplayOFF
LCDClear
LCDModeSet (curser hochzählen)
LCDON
LCDHome (setze cursor auf Adresse 0x00)
dass funktioniert alles prima. Dann kann ich auf der ersten Zeile was
schreiben. Wenn ich aber die Adresse beschreiben will sprich den cursor
wo anders hin setzten möchte (zeile 1: 0x00 bis 0x07, zeile 2 0x40 bis
0x47) dann kann ich danach das Display nicht beschreiben da das Busy
flag gesetzt bleibt. Wenn ich diese ignoriere und weiter schreibe. Steht
der Cursor auf der letzten position. Sprich es sieht so aus als ob da
nichts passiert wäre.
Was könnte denn mein fehler sein???
gruss,
pete
ja das problem mit dem cusor hatte ich auch mal, und zwar so:
in der ersten zeile konnte ich den cursor beliebig verschieben, und ich
konnte in auf 0x40 also 2. zeile verschieben, aber in der zweiten zeile
nicht an eine beliebige stelle, er landete immer an 0x40. hat da jemand
infos?
uLuxx
Hallo,
ist in der Zwischenzeit eine Lösung gefunden worden?
Habe leider dasselbe Problem. Benutze ein Batronix ISP-Board mit einem
Atmel T89C51-AC2 und einem LCD von Displaytech (162C) mit einem HD44780.
Kann den Cursor in der 1. Zeile verschieben, aber den Cursor an keine
Spalte direkt setzen. Die 2. Zeile wird nur durch Zufall mal erreicht.
Habe meinen Quelltext angehängt.
Hoffentlich kann mir jemand helfen, ich bin am verzweifeln...
Danke,
Markus
Ich kenne keine LCD´s bei denen der Adressbereich kontinuierlich
durchgeht für 2-zeilige (oder mehr) displays durchgeht. Da ist immer ein
Offset dazwischen. Genaues sagt das Datenblatt. Das Busy-Flag kann man
direkt unter seiner Adresse auslesen, dazu braucht man den Pointer nicht
zu ändern. Allerdings muss man die Flag-Adresse 2 mal lesen falls das
Display im 4 Bit Modus angesteuert wird.
Jo,
laut datenblatt 1.Zeile 0x00, 2.Zeile 0x40,
für den 162C eine routine zum schreiben, der schreibt von links nach
rechts und überspringt dabei die bandlücke (muhahaha, typisch phyisk)
(8Bit modus, Char @ temp1)
Der rest ist im anhang, falls ihr fragen habt, könnt ihr mir auch eine
mail schreiben,.. grüüüüße
Nochmal zum Verständnis:
Du springst nicht direkt auf eine bestimmte Zeile/Spalte, sondern
verschiebst einfach den Cursor solange (???nach rechts???) bis du die
gewünschte Zeile/Spalte erreicht hast?