Pages: [1]   Go Down
Author Topic: TFT Display löschen  (Read 761 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Jr. Member
**
Karma: 0
Posts: 58
este es la leche
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

Switzerland
Offline Offline
Faraday Member
**
Karma: 108
Posts: 5152
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Welche Bibliothek verwendest Du?
Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 266
Posts: 21665
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Welches Display hast Du?
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 58
este es la leche
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Switzerland
Offline Offline
Faraday Member
**
Karma: 108
Posts: 5152
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

fillRect()?
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 194
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 58
este es la leche
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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. 
Logged

Switzerland
Offline Offline
Faraday Member
**
Karma: 108
Posts: 5152
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Offline Offline
Jr. Member
**
Karma: 0
Posts: 58
este es la leche
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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).
Logged

Pages: [1]   Go Up
Jump to: