原文:
最近在做一些除錯觸屏的工作,經過一段時間的接觸,碰到了一些問題,隨手記下。
電容屏的的驅動,常見的問題是:
1.虛擬按鍵的敏感區域不正確
比如觸碰虛擬按鍵的圖示,按鍵無反應,但是觸碰按鍵圖示的右上角,按鍵的反應卻正常。
2.在觸屏測試時,畫的線不圓滑,有的折線很明顯
觸屏的互動方式有種叫做握手模式,但是需要配合firmware來共同協調,達到很好的效果
3.硬體的問題
敏感區域向右上偏,左下角會有區域無反應
4.在除錯過程中
getevent來檢查是否產生中斷
cat /proc/kmsg來觀察自己設定的trace
除錯的基本過程:
1.sample**和datasheet的獲取。
2.上電。有的是常供電,有的是需要操作一下gpio
3.調中斷。如果在串列埠中能輸出終端資訊,也就成功了一半了。
4.確認i2c位址,vendor提供的位址大多是8為位址,而android裡面使用的是7為的位址。
5.上面的步驟完成後,觸屏就可以正常通訊了,也就是完成了基本的功能,下面的工作就是做一些優化,如firmware的公升級、虛擬按鍵的新增及座標的調整、精確度的調整等等。
6.測試。進行詳細的測試,有問題再根據情況解決。
電阻屏需要注意的是,需要先進行校準,校準之後才能判斷,觸屏的驅動到底好不好使。
電阻屏有彈性,是靠壓力來產生電訊號的,準確度比較高。
軟體平台:android 4.0
問題描述:
今天在除錯電容屏驅動,將android 2.3的驅動**直接移植到4.0中,發現觸控螢幕不能用;
由於硬體已事先在android2.3上驗證過,首先排除了硬體上的問題;觸控螢幕驅動也在2.3平台上能正
常使用,為什麼移植到4.0上就出現問題了呢?
測試步驟:
1、getevent檢視事件發現事件上報正常;
2、加串列埠列印,發現觸控點座標也正常;
難道底層沒問題,而是應用層有問題了?這時突然想起前幾日在4.0平台上移植過電阻屏驅動,為什麼
電阻屏能正常工作而電容屏卻不行了?看來問題還在觸控螢幕驅動裡面。
通過對比兩者驅動**,找到了問題的原因:
原來在電阻屏驅動中,每次上報事件結束時都有報如下兩句:
input_report_key( input_dev , btn_touch , 1); // pressed
input_report_key( input_dev , btn_touch , 0); // realse
在電容屏驅動中卻沒有,加上之後電容屏工作正常。
之後在網上搜尋了一下才知道andorid 的 touchscreen 事件必須要有 btn_touch 才可以。
所以初始化的時候加上:
tablet_dev->keybit[bit_word (btn_touch)] = bit_mask (btn_touch);
報事件的時候加上
input_report_key( input_dev , btn_touch , 1); // pressed
input_report_key( input_dev , btn_touch , 0); // realse
關於觸屏事件的一些操作
需要在你的viewcontroller裡重寫幾個方法 開始觸控的方法 void touchesbegan nsset touches withevent uievent event 觸控取消的方法 void touchescancelled nsset touches withevent uieve...
關於RGB屏除錯的一些知識
1.關於模式 rgb屏顯示資料輸出是分為兩種模式的,一種是de模式,由de輸出高低電平控制 另一種是sync模式,由hsync與vsync輸出行場同步訊號至rgb屏。該兩種模式由乙個mode腳進行選擇,為0 時選擇sync模式,為1時選擇de模式。通常選擇de模式,相容支援的rgb模組較多。2.關於...
c 的一些積累
combobox 控制項 this.combobox1.tabindex 1 this.combobox1.items.add com0 combobox1.selecteditem.tostring int index combobox1.selectedindex string 字串操作 字串 ...