TFT Touchpanel // Kalibrierdaten ermitteln und speichern

Gast #4624021
Hallo! Benötige Eure Hilfe!

>>>http://www.waveshare.com/wiki/2.8inch_TFT_Touch_Shield<<<;


Wer kann mir von Euch sagen, was ich wie und wo machen muss, damit ich 
nicht bei jedem Einschalten das Panel neu kalibrieren muss.

Ich beziehe mich dabei auf das - ARDUINO DEMO -

Please use the stylus click the cross on the screen. The cross will 
always move until the screen adjustment is completed.



Vielen Dank im voraus - Gruß Klaus
offenbar benötigt man Kalibrierdaten
die sind beim Einschalten nicht da
diese werden durch den ersten Kalibriervorgang erzeugt

logisch wäre dann doch:
speicher die Daten ab, dann sind sie beim nächsten Start da.
Und die Tatsache, dass welche da sind kann man ausnützen um die 
Kalibrierung fortan zu überspringen.
Arduino schrieb:
> und wie geht das?
In dem du dir mal das Programm anschaust. Die Kalibrierwerte werden ja 
wohl in irgendwelchen Variablen gespeichert, diese schreibst du nach der 
Kalibrierung in den EEProm. Beim Start musst du zuerst die Werte aus dem 
EEProm laden, und wenn die gültig sind rufst die Funktion zur 
Kalibrierung nicht auf.

Sascha
(Firma: matzetronics)
Mit einem alten resistiven Touchscreen mache ich das so:
Wenn beim Powerup eine bestimmte Taste gedrückt ist, startet die 
Kalibrierungsroutine:

* Alte Offsets und Skalierungen (wird unten erklärt) werden gelöscht, 
bzw. auf 1 gesetzt.
* Kurze Erklärung wird gezeigt und ein Kreuzchen auf X=0 und Y=0.
* User tippt aufs Kreuzchen und ich speichere die Koordinaten zwischen.
* Wieder kurze Erklärung und Kreuzchen wird auf X=Max und Y=Max gezeigt
* User tippt aufs Kreuzchen und Koordinaten werden gemerkt.

Die Werte vom ersten Tippen (0,0) sind Offsets, die Werte vom zweiten 
Tippen (YMax und XMax) sind Skalierungen. Beide Werte landen nun im 
EEPROM und werden in Zukunft von den gelieferten Touchkoordinaten 
abgezogen (die Offsets) aus den bekannten Werten des LCD (Höhe und 
Breite) werden durch dividieren Skalierungen hergestellt, damit YMax und 
XMax der Touchroutine gleich den YMax und XMax des Displays sind.

Kiste macht Neustart und liest die EEPROM Werte. Die normale 
Touchroutine liefert dann die Pixelwerte mit den Koordinaten meines LCD.
Arduino schrieb im Beitrag #4624140:
> Wenn Du das auch nicht kannst, dann antworte bitte nicht mehr auf meine
> Frage.
Können und wollen sind 2 Paar Schuhe, eine Komplettlösung wirst du hier 
nicht bekommen.
Wenn du nur fertiges zusammenstöpselst / kopierst und denkst das läuft 
dann Plug&Play dann wird das für dich wohl die falsche Plattform sein.

Sascha
Moderator (Firma: Titel) Persönliche Seite
Arduino schrieb:
> Vielleicht hast Du ja Lust, in den Quellcode zu schauen.
Mit welchem Ziel?
Solltest nicht eher du in den Quellcode schauen und versuchen, zu 
verstehen, was da passiert? such einfach mal die Stelle im Quellcode, in 
der genau dieser Text ausgegeben wird. Und dann sieh dir an, was 
hinterher getan wird. Letztlich werden dann irgendwelche Kalibrierdaten 
in irgendwelche Speicherplätze geschrieben. Und genau dort fängt die 
Lösung deiner Aufgabe an.

Arduino schrieb:
> Wer kann mir von Euch sagen, was ich wie und wo machen muss, damit ich
> nicht bei jedem Einschalten das Panel neu kalibrieren muss.
Blöderweise wirst du genau das machen müssen, wenn du zur Konfiguration 
beliebige Panels an beliebige uC anschließen willst:
Beitrag "Touchpanel im laufenden Betrieb trennen"
Gast
...ich habe mir die Werte von s_Touch nach der Zuweisung ausgeben 
lassen. Wenn ich diese Zahlen benutze funktioniert es trotzdem nicht. 
Hast du vielleicht nochmal ein Tipp für mich?  Danke - Klaus

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.