Arduino TFT Display flackert bei überschreiben

Gast #6758174
Lesenswert?

Guten Tag
Mein Display flackert beim überschreiben und ich Verstehe nicht weshalb.
Unten ist der Code mit dem Teil des Schreiben und dem anschliessenden 
überschreiben. Das Display wird mit einem Arduino per SPI betrieben. Das 
Display ist das Folgende:
https://www.bastelgarage.ch/128x160-1-8inch-lcd-display-modul?search=1.8%20inch%20lcd

Bei Fragen stehe ich gerne zur Verfügung
1
  TFTscreen.stroke(0, 0, 0);//Schwarz
2
  // print the sensor value
3
//Text setzen-------------------------------------------------------------
4
  TFTscreen.text(sensorPrintout, 2, 20); // Bodenfeuchtigkeit
5
  TFTscreen.text(Temperatur, 2, 60); // Temperatur
6
  TFTscreen.text("C", 20, 60); // Temperatur
7
  TFTscreen.text(Luftfeuchtigkeit, 2, 105); //Luftfeuchtigkeit
8
  TFTscreen.text("%", 20, 105); // Temperatur
9

10
  //TFTscreen.text(Bedingung_Bodenfeuchtigkeit[4], 30, 20); // aktueller Wert für Pumpen
11
  TFTscreen.text(sensorPrintout4, 40, 20);
12

13

14
  // wait for a moment
15
delay(1000);
16
  //Text löschen-----------------------------------------------------------
17
  //Textfarbe auf Schwarz setzen
18
 TFTscreen.stroke(255, 255, 255); // muss mit Weiss reseten sonst werden 
19
  TFTscreen.text(sensorPrintout, 2, 20); //Bodenfeuchtigkeit
20
  TFTscreen.text(Temperatur, 2, 60); // Temperatur
21
  TFTscreen.text(Luftfeuchtigkeit, 2, 105); //Luftfeuchtigkeit
22
 // TFTscreen.text(Bedingung_Bodenfeuchtigkeit, 10, 20); // aktueller Wert für Pumpen
23
  TFTscreen.text(sensorPrintout4, 40, 20);
#6758189
Lesenswert?

flackern ist oft ein Zeichen falscher Programmierung.
Viele löschen zuerst das ganze Display was eben dauert und deswegen 
flackerts.
Besser man löscht nur dort wo man neu schreibt.
Ich hatte zumindest Texte im Array als backup und wo sich was ändern 
sollte diese alten Buchstaben erst in schwarz geschrieben und dann neue 
geschrieben.

bis 100 Buchstaben hat man ja RAM genug, je nach Programm.
Einige Controller haben auch viel mehr RAM so das auch 1000 
Buchstaben/Zahlen/Zeichen als backup gehalten werden können.

Ich schreibe erst mit sprintf(RAM-ARAY,.....
und schicke das nur alle 250ms zum TFT und je nach Größe auch nur die 
Zeichen an die Änderungsposition.

Warum sollte ich Temperatur oder Datum 4x pro Sekunde neu schreiben, da 
ändert sich doch nichts, nur die Daten ändern sich und das wären für die 
Temperatur maximal 3-4 Zeichen.
OK das Datum zum Jahreswechsel immerhin 8 Zeichen!
Gast #6758215
Lesenswert?

noch weniger flackert es wenn man einen Bereich im Ram vorbereitet und 
dann am Stück überträgt, die üblichen TFT unterstützen das mit einem 
Window das man setzen kann. Löschen und danach Schreiben führt zu 
sichtbarem flackern, auch wenn nur wenige ms dazwischen liegen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren