Timbo1 schrieb:
> Hallo,
> beim Textdisplay überchreibt man z.B. eifnach die Zahl.
> Aber macht ihr das bei nem TFT?
> Da braucht es ja ewig, bis er alles neu gezeichnet oder einfach alles
> schwarz ausmalt..
> Einfach nur die Betreffende Stelle mit nem schwarzen quadraht
> übermahlen?
> Die gleiche zahl wie vorher nur in schwarz drüberschreiben und dann erst
> in einer anderen Farbe die neue?
Ich hatte kürzlich auch dieses Problem und beide Ansätze (Rechteck oder
alter Inhalt in Hintergrundfarbe) ausprobiert. Das Überschreiben mit dem
alten Wert hat den Nachteil, dass es langsamer ist als einfach mit einem
Rechteck in Hintergrundfarbe zu "grundieren", da der Font erneut
"gerendert" werden muß. Für das schlichte "Füllen" gibt's meist schnelle
Funktionen.
Wenn Dein Display kein "double Buffering" beherrscht und Du viel Inhalt
darstellen willst, der sich gelegentlich ändert wird es schnell anfangen
zu "flackern".
Ich habe das Problem des Flackerns dadurch gelöst, dass ich nur dann neu
schreibe, wenn sich der Wert auch tatsächlich geändert hat und die
Aktualisierung des Bildschirms von der eigentlichen Anwendung entkoppelt
habe und den Bildschirm stumpf von oben nach unten langsam aktualisiere
2-4s pro Refresh. Mehr kann man bei komplexen Bildinhalten als Mensch
ohnehin nicht sinnvoll erfassen.
Wenn sich der Anwender auf einen einzigen Wert konzentriert (z.B. beim
Abgleich) dann muß dieser Wert natürlich schneller als alle 2s
aktualisiert werden. Wenn die Datenquelle stark schwankt führt das dann
immer noch zu leichtem Flimmern. Hier hilft dann auch nur:
- Aktualisierung nur dann wenn sich der Displaywert geändert hat
- Filtern des Wertes sofern technisch sinnvoll damit sich das Display
seltener ändert.
Vermeiden/Verringern lässt sich das Flackern meiner Erfahrung nach
ansonsten nur noch durch Hardware:
1) Display mit "double Buffering" verwenden - hier kann man den nächsten
Screen vorbereiten und die Display-HW schaltet dann die Screens
flackerfrei um.
Wenn das nicht geht, dann:
2) Möglichst schnellen Controller und möglichst schnelle Anbindung an
das Display, also kein I2C oder SPI, sondern parallel angebunden.
Bei den kleinen billigen SPI-TFTs der Klasse "160x128 und 65k Farben
ohne double buffering", die man für ein paar Euro aus China bestellen
kann hilft wohl nur die oben genannte SW-Strategie.
Vielleicht hat aber ja noch jemand eine bessere Idee?
Gruß,
Bernd