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 好好規劃自己的路,不要跟著感覺走!根據個人的理想決策安排,絕大部分人並不指望成為什麼院士或教授,而是希望活得滋潤一些,爽一些...
一位繼母的感人之舉
一位繼母的感人之舉 每個人都想得到心愛的人最真誠的關心,可是別人發自心底的關心,用強迫的方法是無法得到的。這種真誠的關心如何能得到?一位繼母給了我們很好的答案。這位繼母是我的顧客,我只是聽別人說她的家庭關係處的非常好。她已經退休,一次來燙頭晚了點兒,我說 今天您不能回家做飯了。她說 我是閒人,家裡沒...