|   Android觸摸屏校準方法  時間(jian):2017-01-05作者:華清(qing)遠見 本文記錄了在調試華清遠見教學平臺FS_S5PC100上(shang)的(de)(de)Android觸(chu)摸屏驅動的(de)(de)過程。屏的(de)(de)型號(hao)是上(shang)篇博(bo)客《液晶背光電源的(de)(de)選擇》中的(de)(de)A043FW02 V0。這里(li)也(ye)給(gei)大(da)家確認下(xia),上(shang)次的(de)(de)電源選擇是沒問(wen)題(ti)的(de)(de)。 我采用(yong)的(de)觸(chu)摸屏(ping)校準方(fang)法利用(yong)到了tslib-1.4。tslib的(de)移植方(fang)法,網上有(you)很多介紹,這里就不(bu)贅述(shu)了。 有過linux下(xia)觸(chu)摸屏(ping)開發經驗(yan)的,應該知道通常驅動是把采(cai)集到的原始坐標(A/D值),直接通過input系統上(shang)報(bao)。對于12位(wei)的A/D,觸(chu)摸屏(ping)的范圍(wei)是:0~0xFFF。在驅動中表(biao)示如(ru)下(xia): 
	input_set_abs_params(ts->dev, ABS_X, 0, 0xFFF, 0, 0); 而(er)Android需要驅動直接上報(bao)液晶屏(ping)(ping)坐標。如我們屏(ping)(ping)的(de)分辨率是(shi)480*272,驅動中需要設置觸摸屏(ping)(ping)的(de)范圍如下: 
	input_set_abs_params(ts->dev, ABS_X, 0, 480, 0, 0); 大家在移植(zhi)別人的(de)觸摸(mo)屏(ping)驅動(dong)時一定要注(zhu)意(yi)上面(mian)范(fan)圍(wei)的(de)設置。必須要匹配(pei)你的(de)屏(ping)分(fen)辨(bian)率。否則(ze)本(ben)文后面(mian)的(de)方法就不適用(yong)了。 接(jie)下來需要思考的是,如何把我們采集(ji)到A/D數據轉換為屏坐(zuo)標。可以用下面的公式來轉換。 
	int a0,a1,a2,a3,a4,a5,a6; 開(kai)始(shi)的(de)ts->xp、ts->yp為(wei)原始(shi)的(de)A/D數據,通過公(gong)式(shi)計算后的(de)ts->xp、ts->yp為(wei)屏坐(zuo)標。 后的問題就是(shi)(shi)如何確定a0~a6的值了。這7個參數的值好的獲取方法就是(shi)(shi)通過tslib了。Tslib的移植(zhi)可以不在android上,搭建一個普(pu)通的根文件系(xi)統(tong)即(ji)(ji)可。移植(zhi)完tslib后,運行校準工具(ju)ts_calibrate,生成pointercal文件。打開文件,里面(mian)會放著7個參數。這7個參數即(ji)(ji)是(shi)(shi)我(wo)們要(yao)的a0~a6。如: 11062 -38 -7188384 69 13570 -19408864 65536 
 相關資訊 發表評論 
 |