新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 嵌入式Linux系統中觸摸屏驅動的研究

        嵌入式Linux系統中觸摸屏驅動的研究

        作者: 時間:2012-05-21 來源:網絡 收藏

        3.4 對得到的觸摸屏的數據進行處理

        是調用data_processing()函數來實現的。根據采用下面介紹的中值濾波法來對采樣數據進行處理。針對坐標點采樣過程中產生的噪聲,一般是采用平均法來去除噪聲,但是這種方法對于采樣數較少,并且個別噪聲采樣點比較大的時候,取平均值會使最后的結果誤差較大,達不到數據處理的要求。故本文采用中值濾波法濾除干擾噪聲,進一步地提高采樣精度。

        中值濾波法的原理如下:首先取奇數個觸摸采樣數據;之后根據采樣數據的大小按照從小到大的順序進行排列;最后取中間位置的值。此種方法一般在采樣點不多,個別采樣數據誤差又較大的情況下,可以有效地減少誤差。具體的過程見圖2。

        3.5觸摸屏的

        在實際的應用中,通常觸摸屏是作為與顯示屏配合使用的輸入設備,需要從觸摸屏采樣得到的坐標與屏幕的顯示坐標做一個映射。觸摸屏和顯示屏都是標準的矩形,見3所示。觸摸屏的X方向坐標只與顯示屏的X方向有關,Y方向只與顯示屏的Y方向相關。

        假設顯示屏的分辨率是W×H,顯示區域的左上角對應的觸摸屏采樣坐標是(x1,y1),右下角對應的坐標是(x2,y2),那么觸摸屏上的任意一點采用坐標(x,y)與顯示屏坐標(xd,yd)的對應關系可按照如下公式計算:

        根據上述的公式計算出實際觸摸屏對應的顯示坐標,之后就是一個觸摸屏的過程,本文采用三點的方法,與兩點校準相比,三點校準的模型考慮到變相和旋轉,更接近實際情況。首先選取3個相距較遠的3個作為校準輸入的采樣點,它們相應的觸摸屏采樣坐標是P0(x0,y0)、P1(x1,y1)、P2(x2,y2),顯示坐標是PD0(xD0,yD0)、PD1(xD1,yD1)、PD2(xD2,yD2)。直角坐標平面的兩個點P和PD,定義P為觸摸屏空間的坐標點, PD為顯示屏空間的坐標點,P可以經過旋轉、比例和平移得到PD坐標。化簡得:

        通過上式可以說明PD和P點之間存在一次線性關系滿足:xD=Ax+By+C yD=Dx+Ey+F

        對于同一個設備,其中的A、B、C、D、E、F為常數,稱為校準常數,故只需在觸摸屏校準時,解出這6個常數,就可以實現觸摸屏空間到顯示空間的轉換。

        3.6 中斷的釋放和注冊模塊的卸載

        是調用s3c2410_ts_cleanup_module()來實現的,分別釋放在初始化過程中,申請的IRQ_TIMER1、IRQ_ADC_DONE、IRQ_TC的中斷和字符設備的接口函數devfs_register_chrdev(),具體如下:

        free_irq(IRQ_TIMER1,g_ts_id);

        free_irq(IRQ_ADC_DONE,g_ts_id);

        free_irq(IRQ_TC,g_ts_timer_id);

        devfs_unregister_chrdev(gMajor, H3600_TS_MODULE_NAME); //卸載字符設備

        4結束語

        本文作者創新點: 結合實際的硬件平臺,詳細地介紹基于嵌入式操作系統下觸摸屏的開發過程,改進了處理采樣數據的方法,最后改進了常用的校準方法。使該觸摸屏驅動更能滿足實際的要求,該觸摸屏已用于實際的嵌入式產品中,運行穩定可靠,具有很好的發展前景和社會經濟效益。

        參考文獻:

        [1]劉淼.嵌入式系統接口設計與開發[M].北京航空航天大學出版社.2006.5

        [2]魏永明等譯.LINUX設備驅動程序[M].中國電力出版社.2006

        [3]張曉林等.嵌入式系統設計與實踐[M]. 北京航空航天大學出版社.2006

        [4]周紅波.基于嵌入式操作系統的開發方法[J].微計算機信息.2006年 第7-2期;55-57

        [5]Samsung Electronics.S3C2410X 32-Bit RISC Microprocessor User’s manual.2003

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 平利县| 广昌县| 水富县| 右玉县| 陵水| 天长市| 永胜县| 闻喜县| 鸡西市| 建阳市| 电白县| 镇赉县| 永城市| 明溪县| 三明市| 墨江| 临潭县| 辰溪县| 呼玛县| 鄯善县| 富蕴县| 无棣县| 漠河县| 平武县| 林甸县| 大渡口区| 卢氏县| 门源| 抚松县| 小金县| 河东区| 峡江县| 德庆县| 绵竹市| 永宁县| 洛浦县| 宁蒗| 米泉市| 富宁县| 巫山县| 化德县|