Sida 1 av 1
Skala om touch-skärm-värden till LCD-koordinater?
Postat: 12 september 2010, 14:50:52
av sneaky
Jag sitter och leker med en liten 320x240 LCD med touchskärm kopplad till en PIC18F4550 och har stött på patrull. Efter många timmar så får jag äntligen ut värden från touch controllern (ADS7843) men nu vill jag ju koppla dessa värden till positionen på skärmen. Värdena jag får ut från skärmen är i runda slängar:
x-led: 30 -> 510 (vänster - höger)
y-led: 490 -> 270 (topp - botten)
Jag fick med lite kod från butiken och de gör såhär:
Kod: Markera allt
lx=((TP_X-220)/16);
ly=320-((TP_Y-400)/11);
Men... jag får inte ihop det riktigt. Petar man in värden i den uträkningen så får jag ju för x-axeln -12 -> 18
Det är säkert mycket enklare än vad jag tror men jag har stirrat mig fullkomligt blind på det. Någon som har några tips?
Re: Skala om touch-skärm-värden till LCD-koordinater?
Postat: 12 september 2010, 15:02:17
av bit96
Med de värden du får, och med heltalsberäkningar:
x_lcd=((x_touch-30)*2) /3
y_lcd=((y_touch-270)*109)/100
OBS. Det blir avrundningsfel på en pixel. Men den noggragnheten har man väl ändå inte på ett finger.
Använder du ett pekstift och vill ha pixelnoggrannhet krävs lite mer beräkningar.
Eventuellt kommer y_lcd upp och ner, men det fixar du lätt.
Edit: Stavfel.
Re: Skala om touch-skärm-värden till LCD-koordinater?
Postat: 12 september 2010, 15:33:31
av sneaky
Tackar för det, nu kommer jag närmare

Men om jag får vara lite besvärlig, har du lust att förklara hur du kommer fram till siffrorna? När jag testade så ser jag att jag måste kalibrera värdena lite för att det ska bli mer exakt. Tragiskt att man kan glömma bort så mycket matematik när man inte räknat något mer avancerat än pytt-satsen på 15 år *suck*
Re: Skala om touch-skärm-värden till LCD-koordinater?
Postat: 12 september 2010, 16:00:48
av victor_passe
Du börjar med att dra bort det minsta värdet från din adc.
Ex:
y-led: 490 -> 270 (topp - botten)
Så y=adc-270
Nu kommer du få maximalt (490-270)=220 som värde men du vill ju ha 255(antar jag)
så multiplicera med 255 och dela med 220
Så hela formeln blir:
y=((adc-270)*255)/220)
Sedan kan man dela både 255 och 220 med tex 5, men jag tror inte programmet går snababre för det.
Re: Skala om touch-skärm-värden till LCD-koordinater?
Postat: 12 september 2010, 16:58:21
av sneaky
Tackar och bockar pojkar, nu är jag på rätt spår

Inte så vidare värst exakt men jag tror att om jag tar några fler mätningar och drar ett medel på dem så blir det nog skapligt.
Nu måste jag bara försöka lista ut varför LCDn inte alltid initieras korrekt och varför signalen att man har tryckt på displayen inte längre fungerar. Varför skulle saker och ting bara fungera, det är väl dumt?

Re: Skala om touch-skärm-värden till LCD-koordinater?
Postat: 19 januari 2016, 08:50:33
av sir88alex
Varför skala med 255? Vill man inte skala gentemot antalet pixlar man har på displayen?
y-led: med y=adc-270 blir maximalt värde 220 som då borde motsvara pixel 240.
Alltså, y = ((adc-270)*240)/220)