GLCD: Flackern, bei übereinanderliegenden Objekten.

Hi,
ich programmiere gerade ein 3,2" Touch LCD mit der UTFT Bibliothek von Henning Karlsen.
Dazu noch einmal eine Frage:

Aktuell habe ich zwei Elemente übereinander platziert. Jetzt flackert das zweite.
Ich habe zum Beispiel ein gefülltes Rechteck. darin schreibe ich dann noch einen Zahlenwert drüber. Das GLCD wird momentan alle 1 Sekunde geschrieben. Man sieht dann ganz deutlich, wie der Bereich an dem die Zahl angezeigt wird, im Sekundentakt flackert.
Schreibe ich die Zahl neben das Rechteck in einen unbenutzen Bereich, dann ist die Ausgabe flackerfrei.

Ist das normal, oder mache ich einen Fehler?

In einem gewissem Rahmen und unter bestimmten Umständen ist das normal. Die Übertragung ist ziemlich langsam und vor allem wird das LCD direkt beschrieben. Um sowas konsequent zu verhindern müsste man mindestens double buffering verwenden. Das heißt einen Zwischenspeicher beschreiben und diesen komplett ausgeben. Dann sieht man nur noch den Teil der sich wirklich ändert. Dafür fehlt aber einfach der Speicher.
Auch wenn man nur einen kleineren Bereich puffern würde, sieht man das immer noch, da es so schon auffällt wie lange es dauert größere Bereiche zu zeichnen. Es fällt schon auf wenn man buttons beim (de)aktivieren neu zeichnet.

Auf dem Due ist es wahrscheinlich besser, da der Takt wesentlich höher ist.

Hi Serenifly,

Du bist wie es aussieht, momentan mein persönlicher Telefon-Joker :slight_smile:
Ja, wenn man genauer beobachtet, sieht es aus wie ein Geschwindigkeitsproblem.
Auch wenn die beiden Schreibbefehle direkt hintereinander rausgehen, sieht man, dass erst die Flache komplett gezeichnet wird, und dann noch einmal der Text drüber gelegt wird. Und das ist dann das Flackern.

Hab jetzt noch einige Zeitmessungen durchgeführt:
Aktuell braucht mein GLCD-Programmteil ca. 130ms. Male so 10 Rechtecke und gebe ~20 Werte/Texte aus. Schätze, dass ich so 20-25% der Flache (320x240) beschreibe. Wird aber wohl doppelt so viel werden.
Und der ganze andere Code braucht auch noch mal 700ms :frowning:
Muss ich mal etwas entzerren. Manche Sachen müssen nicht alle Sekunden aufgerufen werden.

Will das ganze später auf einem 4,3" mit 420x272 laufen lassen. Mal schauen, wie es dann aussieht.
TFT ist noch auf dem Weg von Hongkong. Dazu hab ich mir jetzt noch das Screw-TFT-Shield von Aqualedsource aus Portugal bestellt. Das mit den fehlenden Anschlussklemmen hat mich eh immer genervt. Und so schlag ich zwei Fliegen mit einer Klappe.
Ach ja: DS1307 ist auch noch drauf. Kann man für eine Heizungssteuerung immer brauchen
Auf einen DUE kann ich immer noch umsteigen. Brauch dann nur einige Levelshifter für die Peripherie.

Gruß/hk007