一位CSDN牛人的詳盡觸控螢幕校正方法

2022-05-09 07:06:10 字數 2567 閱讀 4207

original:

多個lcd下修改display與touchp驅動的經驗

我提取的部分資訊:

... ... ...

#define lcd_type  tft640_480

#if ( lcd_type == tft640_480 )

#define src_width           (640)

#define src_height          (480)

#define memsize             (0xa0000)

#define lcd_xsize_tft       (src_width)   

#define lcd_ysize_tft       (src_height)

//觸控區域修改下面的值

#define touch_max_x 1080

#define touch_min_x 10

#define touch_max_y 980

#define touch_min_y 30

#define touch_x src_width          

#define touch_y src_height

//螢幕顯示時隙設定 參考lcd廠商給出的資料 

#define vbpd                ((20) & 0xff)

#define vfpd                ((2)  & 0xff)

#define vspw                ((1)  & 0x3f)

#define hbpd                ((121) & 0x7f)

#define hfpd                ((15)  & 0xff)

#define hspw                ((13)  & 0xff)

//#define adc_delay_time 5000   看你具體情況我獨立放開來,因為有好幾種液晶。

#elif (...)

... ... ...

#endif

... ... ...

以後不管什麼lcd需要處理,直接修改lcd_type就行了。如果你跟我一樣,同種大小也有幾種不同廠商提供的lcd,那麼你還需要定義乙個巨集來區分廠商的,寫好以後需要換就修改1-2個巨集的值就可以了,同時提取出來的巨集再原來的檔案中記得注釋掉,免得重定義。不要去覆蓋好幾個地方。當然這樣或許不完美,還存在觸控需要校正的問題。下面再說說我的做法。

1.首先拿到lcd,燒完讓他跑起來。

2.用wince自帶的校正程式校正。然後用pb或者evc的工具連線wince的登錄檔。找到下面對應的值。

[hkey_local_machine\hardware\devicemap\touch]

"calibrationdata"="這裡每人的值都不一樣"

在$(_flatreleasedir)目錄下的platform.reg裡面找到「[hkey_local_machine\hardware\devicemap\touch]」

修改"calibrationdata"的值為找到的。然後make一下。重新寫進去測試。

這個時候特別需要測試的是遮蔽的邊緣的觸控效果,如果正常,那麼恭喜你,可以了。如果邊緣有問題,進行下一步3。

3.修改觸控區域。

#define touch_max_x 

#define touch_min_x 

#define touch_max_y 

#define touch_min_y 

調整這個區域(一般我見到的情況是邊緣沒反映或者點選後效果靠中心,所以把區域放到就行)。然後轉1再進行測試。

一般幾步就ok了。

最後記得把calibrationdata的值儲存起來放到platform.reg裡面,以後如果更換lcd,那麼直接修改platform.reg檔案,把對應的值放出來,其他的注釋調編譯一下就可以了。根本不需要再校正。

gooogleman小結觸控螢幕定位校準:

第一種方法:

修改platform.reg這個檔案中

[hkey_local_machine\hardware\devicemap\touch]

"maxcalerror"=dword:7

; portrait

"calibrationdata"="644,471 1160,83 100,75 104,831 1172,843 "

關於touch的引數,這個引數可能在不同得環境下有不同。可以先在wince啟動後,在控制

面板-筆針一項重新校準觸控螢幕得值,然後用usb線連線pc機,然後通過pb-tool下的註冊

表工具。檢視裝置得硬體得觸控螢幕相關引數,將其拷貝,並貼上到platform.reg中。再將

platform.reg檔案拷貝到release目錄下。make image即可重新編譯乙個wince出來了。這

時觸控螢幕就比較準了。

第二種方法:

如果touch_max_x touch_min_x touch_max_y touch_min_y 這四個值能調準,就不用再

調整登錄檔的值,即可以關閉登錄檔該項。而如果登錄檔的值有調整,以登錄檔為準

一位原碼的乘法規則 原碼一位乘法的實現演算法

原碼一位乘法的實現演算法 一 用原碼實現乘法運算是十分方便的。原碼表示的兩個數相乘,其乘積的符號為相乘兩數符號的異或值,數值則為兩數絕對值之積。假定 x 原 xsx1 x2 xn y 原 ysy1y2 yn 則 x y 原 x 原 y 原 xs ys x1x2 xn y1 y2 yn 結果是把符號位...

一位老前輩的忠告

諸位,咱當工程師也是十餘年了,不算有出息,環顧四周,也沒有看見幾個有出息的!回顧工程師生涯,感慨萬千,願意講幾句掏心窩子的話,也算給咱們師弟師妹們提個醒,希望他們比咱們強!1 好好規劃自己的路,不要跟著感覺走!根據個人的理想決策安排,絕大部分人並不指望成為什麼院士或教授,而是希望活得滋潤一些,爽一些...

一位繼母的感人之舉

一位繼母的感人之舉 每個人都想得到心愛的人最真誠的關心,可是別人發自心底的關心,用強迫的方法是無法得到的。這種真誠的關心如何能得到?一位繼母給了我們很好的答案。這位繼母是我的顧客,我只是聽別人說她的家庭關係處的非常好。她已經退休,一次來燙頭晚了點兒,我說 今天您不能回家做飯了。她說 我是閒人,家裡沒...