TFT Display löschen

Hallo zusammen, gibt es eine Möglichkeit die Inhalt eines TFT Displays nur teilweise zu löschen? Mit clrScr() wird ja immer der ganze Inhalt gelöscht. Display 400*240 3.2" WideScreen mit ArduinoMega.

Welche Bibliothek verwendest Du?

Welches Display hast Du?

Ich verwende Arduino 0023, als Bibliotheken ITDB32_Touch und ITDB02_Graph16 (bzw. ITDB02_Touch und ITDB02_Graph). Das Display ist ein ITDB02-3.2WD.

fillRect()?

Das ist ein "blödes" Problem, was immer wieder ärgerlich aufstösst. Du kannst es tatsächlich nur lösen, wenn die Zellen überschrieben werden, hinzu kommt noch, dass jedes mal dann ein "Flackern" sichtbar wird :-((

Gruß Gerd

Das Flackern wäre wahrscheinlich kein Problem, es sollen auf dem Display die virtuellen Steuertasten ausgeblendet, bzw. überschrieben werden. Mach ich z.Zt. mit fillRect(), ist aber ziemlich aufwendig, da immer mit setColor, setBackColor die Farben entsprechend angepasst werden müssen.

Du kannst auch die Library anpassen und eine Methode clearRect() oder so integrieren, ich bezweifle aber, dass dies die Mühe wert ist.

Das mit dem Anpassen ist keine schlechte Idee. Da meine Kenntnisse in diese Richtung nicht sonderlich gut sind, habe ich das bisher gelassen.
Nach mehreren Versuchen habe ich dann folgendes in die ITDB02_Graph16 Lib reingebastelt:

void ITDB02::clrRect(int x1, int y1, int x2, int y2)
{
long i;

*P_CS &= ~B_CS;
if (orient==PORTRAIT)
setXY(y1,x1,y2,x2);
else
setXY(x1,y1,x2,y2);
P_RS |= B_RS;
for (i=0; i<(240
(disp_y_size+1)); i++)
{
LCD_Writ_Bus(0,0);
}
*P_CS |= B_CS;
}

und im Keyword.txt den Eintrag “clrRect KEYWORD2” , es funktioniert wie gewünscht.
Die Mühe war es wert, da ich bisher immer mit setColor und fillRect die Displayanzeige überschrieben habe. Ist sehr umständlich da die Anzeige in verschiedene (farbige) Bereiche eingeteilt ist, die auch ihre Farbe verändern (je nach dargestellter Info).