Jump to content
Equinox

Problem mit LCD 128x64 Bricklet (Touch)

Recommended Posts

Hallo,

 

ich benutze das "LCD 128x64 Bricklet" mit mehreren Tabs. Es kommt bei mir ab und zu vor, dass sich das Display nach einem Tab-Wechsel pausenlos "refreshed", und zwar mit unterschiedlichen Tabs. Es reagiert dann auf keine Berührung mehr. Es sieht so aus, als ob man sehr schnell zwischen den Tabs wechseln würde. Meistens fängt es sich auch nicht mehr.

Kann es sein, dass das Bricklet da ein Eigenleben entwickelt und ständig irgendwelche Events für einen Tab-Wechsel sendet?

Zuerst dachte ich, dass sich da mein Programm irgendwie verhaspelt (was ich auch jetzt noch nicht ausschließen kann) und habe es neu gestartet. Heute habe ich aber das Programm laufen lassen und habe nur den Stapel kurz vom Strom getrennt. Danach war alles wieder gut. Ich denke deshalb, dass es nicht an meinem Programm liegt, da es sich sonst auch nach dem Neustart des Stapels noch in dem "verhaspelt"-Zustand befunden hätte.

Hat sonst noch jemand dieses Problem? An was kann das liegen und was kann ich dagegen tun?

 

P.S.: Die Variable, welches Tab gerade selektiert ist, setze ich nur in den Callbacks "guiTabSelected" und "guiButtonPressed" und die Methode zum aktualisieren des Displays wird auch nur mit dieser Variablen aufgerufen. Ich vermute deshalb, dass der Callback "guiTabSelected" ständig mit unterschiedlichen Tabs aufgerufen wird, auch wenn gar kein Berührung vorliegt.

Share this post


Link to post
Share on other sites

Wenn du in diesem Fehlerfall bist, bekommst du dann denn irgendwelche Callbacks? Ich würde erwarten dass das Bricklet dann vielleicht irgendwelche Klicks sieht die gar nicht da sind o.ä.?

Share this post


Link to post
Share on other sites
Ich würde erwarten dass das Bricklet dann vielleicht irgendwelche Klicks sieht die gar nicht da sind o.ä.?

 

Das ist auch meine Vermutung. Allerdings habe ich im Moment in den Callbacks keine Log-Nachrichten eingebaut :( Wären vmtl. auch zuviele ...

Share this post


Link to post
Share on other sites

Hallo,

 

jetzt ist es wieder passiert. Glücklicherweise habe ich mittlerweile Logeinträge in die Callbacks eingebaut. Es ist tatsächlich so, dass ich laufend Callbacks bekomme, obwohl das Display nicht berührt wird. Das Bricklet "sieht" also tatsächlich Klicks, die nicht da sind.

Jemand eine Idee, woran das liegt und wie man das beheben kann?

Share this post


Link to post
Share on other sites

Loggst du auch den "Pressure"-Wert? Ist der minimal oder so groß wie er auch wäre wenn du echt auf das Display drücken würdest?

 

Falls der Wert sehr klein ist könnten wir vielleicht eine SetMinimumTouchPressure-Funktion oder ähnliches als Konfiguration hinzufügen.

Share this post


Link to post
Share on other sites

Hallo,

 

leider nein  :(, da ich das in meinem Programm nicht benötige. Ich verwende nur die

GUIButtonPressedListener()

und

GUITabSelectedListener()

.

Kann ich an den Druck auch ohne TouchPositionListener() kommen?

Share this post


Link to post
Share on other sites

Hallo,

 

jetzt ist es wieder passiert. Bei den Events ohne Berührung war der Pressure-Wert immer 1. Mit Berührung sind die Werte über 50, meistens über 150.

Eine "SetMinimumTouchPressure"-Methode würde vmtl. das Problem beheben, aber was ist die eigentliche Ursache?

Share this post


Link to post
Share on other sites

Mh, ich glaube ich muss da nochmal eine Debug-Firmware fertig machen die den Rohwert des Touchscreens ausgibt um zu sehen wie nah das an einem "Pressure-Wert" von 1 dran ist. Vielleicht muss da generell der Threshold ein bisschen höher.

 

Ich melde mich hier nochmal wenn ich da mehr Erkenntnisse hab.

Share this post


Link to post
Share on other sites

Ich hatte hier jetzt eine Zeit lang einen Testaufbau am laufen der immer nur get_touch_position aufgerufen hat mit der Hoffnung dass ich irgendwann einen "falschen Touch" sehe. Ich konnte das leider bisher nicht reproduzieren.

 

Ein Pressure-Wert von 1 ist bereits der niedrigste Wert, meine Behauptung von vorher dass ich dort einen Threshold niedriger setzen kann macht also keinen Sinn.

 

Meine neueste Vermutung ist, dass du für eine ganz kurze Zeit fälschlicherweise irgendwo eine Berührung siehst (beim Aufruf von get_touch_position nach dem Callback ist der Pressure-Wert dann schon wieder auf 1) und der Fix wäre eher ein Minmum-Klickzeit für den Button-Klick einzuführen.

 

Ich hab da jetzt nochmal mehr logging eingebaut und es sind jetzt auch Buttons mit konfigurierten Callbacks mit eingebaut. Das lasse ich jetzt nochmal ein paar Tage laufen. Melde mich dann wieder.

Share this post


Link to post
Share on other sites

Hallo,

heute ist es wieder passiert, allerdings etwas anders als früher. Es war immer ein Wechsel zwischen Tab 1 und Tab 2 (ich glaube, bin aber nicht sicher, dass dies früher mehr Tabs waren), aber dieses Mal hatte ich für ca. 14 Sekunden Pressure-Werte die deutlich größer als 1 waren (zwischen 17 und 203, wobei die meisten um 170 waren). Davor und danach waren die Werte durchgängig 1.

Lösung war auch dieses Mal, den TF-Stapel vom Strom zu trennen.

Eine Idee, woran das liegen könnte? Kann ich irgendwas zur besseren Analyse einbauen?

Share this post


Link to post
Share on other sites

Hallo,

 

und wieder ist es passiert. Dieses Mal waren alle Tabs beteiligt. Der Pressure Wert lag für 24 Sekunden konstant bei 134 und danach für 32 Sekunden konstant bei 129.
Irgendwelche Ideen?

Share this post


Link to post
Share on other sites

Echt komisch. Die große Frage ist jetzt ob es da einen Bug in der Ausleselogik des Touch-Controllers gibt oder ob dein Touchscreen einen defekt hat.

Wir hatten das LCD noch nicht ausgetauscht, oder? Könntest du einmal an die info@tinkerforge.com eine Email schreiben mit der Bestellnummer und einen Hinweis auf diesen Thread. Dann würde ich vorschlagen dass wir dir erstmal ein neues LCD 128x64 schicken um sicher zu stellen das es sich nicht um einen Hardware-Defekt handelt.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...