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 :( ?
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.
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?
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
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
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.
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
Ja das mit dem Busy, Reset, on/off ist auch ok zum Lesen. Aber ich meinte den RAM Inhalt.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.