國(guó)產(chǎn)嵌入式操作系統(tǒng)下觸摸屏的實(shí)現(xiàn)
3、 ReWorks下校準(zhǔn)及測(cè)試觸摸屏的實(shí)現(xiàn)
本文引用地址:http://butianyuan.cn/article/145836.htmtslib是一個(gè)觸摸屏支持庫(kù),為不同的觸摸屏提供了一個(gè)統(tǒng)一的接口,還提供諸如濾波、去抖、校準(zhǔn)之類的功能。tslib 從觸摸屏驅(qū)動(dòng)處獲得原始的設(shè)備坐標(biāo)數(shù)據(jù),通過(guò)一系列的去噪、去抖、坐標(biāo)變換等操作,來(lái)去除噪聲并將原始的設(shè)備坐標(biāo)轉(zhuǎn)換為相應(yīng)的屏幕坐標(biāo)。本文將tslib移植到國(guó)產(chǎn)ReWorks操作系統(tǒng)+龍芯1A處理器(mips)平臺(tái),實(shí)現(xiàn)了ReWorks下觸摸屏的校準(zhǔn)、測(cè)試等功能。ReWorks系統(tǒng)下tslib層次結(jié)構(gòu)如圖3所示?! ?/p>
tslib 從觸摸屏驅(qū)動(dòng)采樣到設(shè)備坐標(biāo)進(jìn)行處理再提供給應(yīng)用端的過(guò)程如下:raw device --> variance --> dejitter --> linear --> application。tslib對(duì)驅(qū)動(dòng)采樣到的數(shù)據(jù)進(jìn)行處理的過(guò)程如下:讀取屏上5個(gè)點(diǎn)的坐標(biāo)(Top Left,Top Right,Bottom Left,Bottom Right,Center),再進(jìn)行一系列的變換,取樣的5個(gè)點(diǎn),實(shí)際上是包含3個(gè)不同的X坐標(biāo)值,3個(gè)不同的Y坐標(biāo)值,和scaling 值一共7個(gè)值,一起保存到pointercal文件中。
將tslib移植到ReWorks系統(tǒng)后,運(yùn)行ts_calibrate校準(zhǔn)觸摸屏,用觸摸筆點(diǎn)擊觸摸屏四個(gè)角及中央五個(gè)點(diǎn),tslib進(jìn)行坐標(biāo)換算,觸摸屏校準(zhǔn)界面如圖4所示?! ?/p>
完成五點(diǎn)校準(zhǔn)后,會(huì)自動(dòng)生成pointercal校準(zhǔn)文件保存在手持式計(jì)算機(jī)Flash根目錄/ffx0下。本文中手持式計(jì)算機(jī)液晶屏的分辨率為480x640,校準(zhǔn)時(shí)ReWorks終端輸出信息如下。
------calibrate starting-------
xres = 480, yres = 640
## Fri Mar 22 09:29:24 CST 2013 ##
Took 5 samples...
Top left : X = 3428 Y = 516
Took 4 samples...
Top right : X = 616 Y = 528
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評(píng)論