Offline
Jr. Member
Karma: 0
Posts: 52
este es la leche
|
 |
« on: October 03, 2012, 12:30:45 pm » |
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
Faraday Member
Karma: 69
Posts: 3256
|
 |
« Reply #1 on: October 03, 2012, 12:33:36 pm » |
Welche Bibliothek verwendest Du?
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
BZ (I)
Online
Brattain Member
Karma: 160
Posts: 15612
+39 349 2158303
|
 |
« Reply #2 on: October 03, 2012, 12:39:32 pm » |
Welches Display hast Du?
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Jr. Member
Karma: 0
Posts: 52
este es la leche
|
 |
« Reply #3 on: October 03, 2012, 12:51:38 pm » |
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
Faraday Member
Karma: 69
Posts: 3256
|
 |
« Reply #4 on: October 03, 2012, 02:18:47 pm » |
fillRect()?
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Full Member
Karma: 0
Posts: 194
|
 |
« Reply #5 on: October 04, 2012, 04:12:00 am » |
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
Jr. Member
Karma: 0
Posts: 52
este es la leche
|
 |
« Reply #6 on: October 04, 2012, 03:56:14 pm » |
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
Faraday Member
Karma: 69
Posts: 3256
|
 |
« Reply #7 on: October 05, 2012, 07:20:08 am » |
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
Jr. Member
Karma: 0
Posts: 52
este es la leche
|
 |
« Reply #8 on: October 07, 2012, 01:00:04 pm » |
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
|
|
|
|
|
|