Forum: Mikrocontroller und Digitale Elektronik read display data?


von LCD (Gast)


Lesenswert?

Derzeit lese ich mich in die Materie der LC Displays ein und will mich 
anschließend an einer kleinen Anzeige versuchen.
Im Datenblatt meines Displays->

 http://download.maritex.com.pl/pdfs/op/TG12864B-03.pdf

gibt es einen Unterpunkt(7)Read Display Data auf Seite 19, der mich mit 
der Frage beschäftigt : Zu was soll ich die Daten aus meinem Display RAM 
lesen?

Reicht doch, wenn ich die Daten nur reinschreibe und anzeigen lass :( ?

von c-hater (Gast)


Lesenswert?

LCD schrieb:

> gibt es einen Unterpunkt(7)Read Display Data auf Seite 19, der mich mit
> der Frage beschäftigt : Zu was soll ich die Daten aus meinem Display RAM
> lesen?
>
> Reicht doch, wenn ich die Daten nur reinschreibe und anzeigen lass :( ?

Typischer Fall von sehr engem Horizont.

Stell dir einfach mal vor, du hast ein mehrzeiliges Display und willst 
den Text eine Zeile nach oben scrollen, um dann in der letzten (nummehr 
freien)  Zeile weiteren Text anzufügen.

Ohne die Möglichkeit zum Zurücklesen des Displayinhalts mußt du den 
gesamten Text zusätzlich im RAM deines Controllers vorhalten, um dies 
realisieren zu können.

von LCD (Gast)


Lesenswert?

Tut mir leid aber das verstehe ich nicht. Selbst wenn der Text gescrollt 
werden soll, braucht man doch nur berechnen wo er sich befinden soll und 
es nicht wissen?

von Michael W. (michael_w71)


Lesenswert?

Rein theoretisch hast du recht, man müsste vom Display nicht lesen.
Jedoch ist der Speicher deines uC's nur begrenzt. Stell dir vor du 
schreibst ein kleines Spielchen für einen ATtiny85: du hast 512 Byte RAM 
und du möchtest natürlich noch etwas berechnen und zwischenspeichern.
Da wird's dann knapp und durchaus sinnvoll den Speicher des Displays 
auch auszunutzen.

Grüße
Michael

von Holger W. (holgerw)


Lesenswert?

Wenn du auf dem LCD jeden Pixel einzeln setzen/löschen kannst ist das 
egal.
Wenn du aber immer nur 1 Byte schreiben kannst wird es schwieriger.
Du musst das ganze Byte schreiben um den Pixel zu setzen, weisst aber 
nicht was vorher drinstand.
Eine Möglichkeit ist es den Bildschirminhalt komplett im RAM zu haben, 
dort das Pixel setzen/löschen
und als Bildschirmspeicher auszugeben oder, wie bei deinem Disply,
das ganze Byte lesen, das entsprechende Pixel zu setzen/löschen und 
wieder an die Stelle zu schreiben.

Holger

von Peter D. (peda)


Lesenswert?

LCD schrieb:
> Zu was soll ich die Daten aus meinem Display RAM
> lesen?

Im Prinzip ist diese Funktion nutzlos.
Ich hab auch nirgends LCD-Code gesehen, der diese Funktion sinnvoll 
einsetzt.

Man könnte sie dazu benutzen, um zu erkennen, ob überhaupt ein Display 
angeschlossen ist und ob der Datenbus funktioniert.
Eine Gewähr, daß das zurückgelesene Zeichen auch wirklich angezeigt 
wird, hat man damit aber nicht.

von LCD (Gast)


Lesenswert?

Vielen Dank, ihr habt mir sehr weitergeholfen. Jetzt ist es klar =)

von Ottmar K. (wil1)


Lesenswert?

Hallo,

eines habt ihr vergessen: Das Busyflag! Sobald der LCD-Controller 
beschäftigt ist, z.B. DDRAM-Adresse übernehmen, Zeichen ausgeben, setzt 
er das Busyflag = 1. Das frägt man/frau mit dem "Lesen-Befehl" ab. 
Üblich ist es oft, bei wenig zeitkritischen Anwendungen, z.B. 1ms zu 
warten und dann anzunehmen, dass der LCD-Controller seine Arbeit getan 
hat. Eleganter ist es aber das Busyflag (D7) abzufragen, um sobald 
dieses = 0 ist, mit dem nächsten Auftrag an den LCD-Controler 
herantreten zu können.

mfG Ottmar

von LCD (Gast)


Lesenswert?

Ja das mit dem Busy, Reset, on/off ist auch ok zum Lesen. Aber ich 
meinte den RAM Inhalt.

von Peter D. (peda)


Lesenswert?

Ottmar K. schrieb:
> er das Busyflag = 1. Das frägt man/frau mit dem "Lesen-Befehl" ab.
> Üblich ist es oft, bei wenig zeitkritischen Anwendungen, z.B. 1ms zu
> warten und dann anzunehmen, dass der LCD-Controller seine Arbeit getan
> hat.

Nein, das hat mit zeitkritisch überhaupt nichts zu tun.

Es hängt allein davon ab, ob man dem Nutzer wildes Geflacker zumuten 
will oder besser eine ergonomische Updaterate (2..5/s).
Gestaltet man den Programmablauf ergonomisch, ist die CPU-Last durch das 
LCD nahe 0,nix.
Und riesige 1ms nehmen auch nur die Leute, die panische Angst vor 
Datenblättern haben.
Den langsamen Clear-Befehl nimmt eh keiner, der auf professionelle 
(flackerfreie) Ansicht Wert legt.

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.