Hallo,
vielleicht hat ja einer von Euch eine Idee dazu.
Ich "kämpfe" gerade ein bisschen mit einem RVT70UQFNWC0x von Riverdi.
Das hat einen FT813 drauf, ist also kapazitiv Touch.
Ich verwende da nur den default single-touch Modus.
Jetzt habe ich drei Slider und die benehmen sich nicht so richtig
sauber.
Beim "sliden" hängt das gerne mal oder man erwischt den Punkt gleich gar
nicht.
Im Programmers Guide zum FT81x gibt es dieses Beispiel:
1 | uint16_t val = 0x8000;
|
2 | cmd_track(20, 50, 120, 8, 34);
|
3 | Ile (1) {
|
4 | ...
|
5 | cmd(TAG(34));
|
6 | cmd_slider(20, 50, 120, 8, val, 65535);
|
7 | ...
|
8 | uint32_t tracker = rd32(REG_TRACKER);
|
9 | if ((tracker & 0xff) == 33)
|
10 | val = tracker >> 16;
|
11 | ...
|
12 | }
|
cmd_track() und cmd_slider() werden da mit identischen Werten für X,Y,
Länge und Breite aufgerufen.
Bei mir sehen die beiden Zeilen zum Beispiel so aus:
1 | ft800_cmd_slider(LAYOUT_X1+(5*(LAYOUT_W/6))-10,LAYOUT_Y1+130,20,200,0,slider10_val,4000);
|
2 | ft800_cmd_track(LAYOUT_X1+(5*(LAYOUT_W/6)),LAYOUT_Y1+130,20,200,10);
|
Ich habe verticale Slider mit 20 Pixel Breite.
Und da ich festgestellt habe, dass der Fokus-Punkt beim touchen versetzt
ist, habe ich dem cmd_track() einen Offset von 10 Pixeln in X-Richtung
verpasst.
Damit funktioniert das schon besser, aber nicht wirklich gut.
Spontan habe ich leider auch kein Beispiel gefunden das Slider benutzen
würde und für das Riverdi TFT an sich schon mal gar nichts.
Das "Visual TFT" Tool von MicroE habe ich mir auch gerade angesehen, das
hat aber kein Default Setup für dieses TFT bei dem man sich was
abschauen könnte und dann wäre cmd_track() auch eher im User-Code zu
finden.
Die Empfindlichkeit über REG_TOUCH_RZTHRESH refresh hochzuschrauben hat
soweit nichts gebracht.
Eine Maßnahme wäre vielleicht noch ein breiteres Rechteck in
Hintergrund-Farbe um den Slider zu legen mit dem gleichen Tag-Wert.
Vorschläge, Ideen, Meinungen? :-)