Moin.

Mal ein kleines mathematisches bzw. geometrisches Problem.
Von einem Touch-LCD werden die X/Y-Positionen über 2 ADC-Kanäle eingelesen.
Bisher hab ich es bei Tasten immer so gemacht, dass ich auf den Mittelpunkt des Tastenrands gedrückt hab und die jeweilige Position mit dem ADC-Wert bestimmt hab. Also der linke Rand einer Taste liegt z.B. auf 100, der rechte auf 200; oben auf 400, unten auf 500.
Damit weiss ich, dass die Taste gedrückt ist, wenn die Bedingung
((x >= 100) && (x <= 200)) || ((y >= 400) && (y <= 500)) zutrifft.

Ich möchte das Ganze jetzt so umbauen, dass ich nicht mehr bei jeder Taste die ADC-Werte "ausprobieren" muss, sondern dass ich die Position von der jeweiligen GetPos-Funktion gleich als Pixelwert bekomme.

Und da kommt schon das Problem: Fahr ich z.B. auf einer waagrechten Linie von links nach rechts, sollte der y-Wert ja gleich bleiben... tut er aber nicht.
Ich hab hier mal die ADC-Werte der 4 Eckpunkte (X / Y):

Position: X_ADC / Y_ADC (= X_Pixel / Y_Pixel)
Oben links: 101 / 145 (= 0, 0)
Oben rechts: 867 / 150 (= 127, 0)
Unten links: 102 / 759 (= 0, 63)
Unten rechts: 848 / 802 (= 127, 63)

Die Y-Werte ganz oben unterscheiden sich nur um 5 "Punkte", die ganz unten dafür schon um 43.
Wär die Abweichung immer die gleiche oder nur bei einer Achse, wäre es eigentlich kein Problem. Nur dass eben die Abweichung mit der Position selber "abweicht" macht mir irgendwie nen Knoten ins Rechenhirn...

Wie kann ich das ganze so begradigen, dass ich die erwarteten Pixelwerte krieg?

mfG