PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Aktuelle Cursorposition aus dem Display auslesen( 44780)



izaseba
25.02.2006, 14:01
Hallo,

Da ich bei meinem µC noch eim paar Pins "über" habe, hab ich versucht den BUSY Flag auszulesen, um sich die Delay Routinen zu sparen.
Das klappt auch wunderbar.
Was ich aber noch möchte, ist die aktuelle Cursor Position auszulesen.
So wie ich es verstanden habe ist nach dem Abfragen der oberste Bit, ja der Busy Flag und die restlichen 7 Bits die Aktuelle Adresse im RAM.
Um das zu bestätigen schicke ich mir den Byte auf den UART, aber das was dort ankommt, kann nie der aktuellen Cursor Position entsprechen. :-k

So wird es gemacht:
Zeichen aufs Display schicken,
RS LOW

D4-D7 als Eingang konfigurieren
D4-D7 Pullups einschalten
RW auf HIGH
Enable kurz auf High
D4-D7 einlesen -> ergibt das obere Nibble
Enable wieder High
D4-D7 einlesen -> ergibt das untere Nibble
RW Low
die Pullups wieder aus
D4-D7 wieder als Ausgang
fertig.

Das müßte so klappen, sonst käme ich aus der Endlosschleife nicht mehr raus, während ich auf Busy LOW warte :-k nur die Adresse ?

Kann mir da jemand sagen, ob meine Denkweise falsch ist ?

Klar könnte jetzt jemand sagen, wozu das ganze, man könnte sich ja immer merken, was man an das Display verschickt und fertig.
Es geht sich aber zum ersten ums Lernen und zum zweiten warum soll man es nicht nutzen, wenn man eh noch Pins über hat.

Gruß Sebastian

linux_80
25.02.2006, 16:08
Hallo,
was bekommst du für Werte ?
In meiner Beschreibung steht das die unteren 7 Bit der Adresszähler für DDRAM und CGRam sind, jetzt müsste man nur wissen wann welches gemeint ist ! Oder gibts nur einen Zähler !? :-k

izaseba
25.02.2006, 16:34
Oder gibts nur einen Zähler !?

Ja eben aktueller Adresse in CG oder DD RAM.
Mich interessiert ja DD Ram

Unter dem Befehl Set DD-Ram adress steht :

Zugriffe auf das Dattenregister greifen auf des DD-Ram zu.

Ich nimm jetzt an, wenn ich am Anfang, bei mir in der init Routine Set DD Ram Adress auf 0 stelle, also auf die oberste, linke Ecke und kein Set CG-Ram Adress Befehl ausführe müßte ich immer die DD Ram Adresse auslesen...

Welche Werte Bekomme ich ?
Hmm meistens 0 dann ist da mal eine 11 zwischen oder noch was anderes,
Ich muß mal im Net nach einem Beispiel Suchen, das Problem ist aber,
daß alle mit Delay arbeiten, wegen Pins Sparen, aber wenn ich schon welche über hab, also : immer gegen den Strom schwimmen!

Gruß Sebastian