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.