新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 嵌入式linux 電阻觸摸屏 (s3c2440)編程

        嵌入式linux 電阻觸摸屏 (s3c2440)編程

        作者: 時間:2016-11-25 來源:網絡 收藏



        更多5線8線式的觸摸屏介紹:http://www.elecfans.com/baike/waijiepeijian/chugan/20100324205083.html?1324351403
        更多資料:http://yunxiong1020.blog.163.com/blog/static/76344309201110283759386/

        1.2 在S3C2440中的觸摸屏接口
        SOC S3C2440的觸摸屏接口是與ADC接口結合在一起的,框圖如下:




        3,觸摸屏接口
        XP、XM、YP、YM為四線電阻觸摸屏接口,四條信號線分別代碼的含義為:
        nXPONPlus X-axis on-off control signalx軸正極開關控制信號
        XMONMinus X-axis on-off control signalx軸負極開關控制信號
        nYPONPlus Y-axis on-off control signaly軸正極開關控制信號
        YMONMinus Y-axis on-off control signaly軸負極開關控制信號
        觸摸屏接口的模式有以下幾種:
        (1)、普通ADC轉換模式
        (2)、獨立X/Y位置轉換模式
        (3)、自動X/Y位置轉換模式
        (4)、等待中斷模式
        我們主要接受觸摸屏接口的 等待中斷模式和自動X/Y位置轉換模式,自動轉換模式操作流程如下:觸摸屏控制器自動轉換X,Y的觸摸位置,當轉換完畢后將數據分別存放在寄存器ADCDAT0和ADCDAT1.并產生INT_ADC中斷通知轉換完畢。
        更多詳細情況請查閱:數據手冊

        等待中斷模式:
        Waiting for Interrupt Modesetting value is rADCTSC=0xd3;//
        XP_PU, XP_Dis, XM_Dis, YP_Dis, YM_En.
        當觸摸后,觸摸屏控制器產生INT_TC中斷,等待中斷模式下, Modesetting value (四個引腳設置應該為):
        rADCTSC=0xd3;XP_PU, XP_Dis, XM_Dis, YP_Dis, YM_En.




        當觸摸后,觸摸屏控制器產生INT_TC中斷,四個引腳設置應該為:

        引腳XPXMYPYM
        狀態PULL UP/XP DisableDisable (初始值即是)DisableEnable
        設置1011

        當中斷產生后,X/Y的位置數據可以選擇獨立X/Y位置轉換模式,和自動X/Y位置轉換模式進行讀取,采用自動X/Y位置轉換模式進行讀取需要對我們已經設置的TSC寄存器進行更改,在原有的基礎上,
        S 3C2410_ADCTSC_PULL_UP_DISABLE| S3C2410_ADCTSC_AUTO_PST | S3C2410_ADCTSC_XY_PST(0)。
        數據轉換完畢后,也會產生中斷,通知轉換結束。

        2. 輸入子系統模型分析
        2.1 整體框架:

        輸入子系統包括三個部分 設備驅動、輸入核心、事件處理器。
        第一部分 設備驅動
        是連接在各個總線上的輸入設備驅動,在我們的SOC上,這個總線可以是虛擬總線platformbus,他們的作用是將底層的硬件輸入轉化為統一事件型式,向輸入核心(Input core)匯報.





        第二部分 輸入核心 的作用如下:
        (1) 調用input_register_device() used to 添加設備,調用input_unregister_device() 除去設備。(下面會結合觸摸屏驅動講述)
        (2) 在/PROC下產生相應的設備信息,下面這個例子即是:
        /proc/bus/input/devices showing a USB mouse:

        I: Bus=0003 Vendor=046d Product=c002 Version=0120
        N: Name="Logitech USB-PS/2 Mouse M-BA47"
        P: Phys=usb-00:01.2-2.2/input0
        H: Handlers=mouse0 event2
        B: EV=7
        B: KEY=f0000 0 0 0 0 0 0 0 0
        B: REL=103

        (3) 通知事件處理器對事件進行處理

        第三部分是 事件處理器:
        輸入子系統包括了您所需要的大多數處理器,如鼠標、鍵盤、joystick,觸摸屏,也有一個通用的處理器被叫做event
        handler(對于內核文件evdev.C).需要注意的是隨著內核版本的發展,event handler將用來處理更多的不同硬件的輸入事件。在Linux2.6.29版本中,剩下的特定設備事件處理就只有鼠標和joystick。這就意味著越來越多的輸入設備將通過event
        handler來和用戶空間打交道。事件處理層的主要作用就是和用戶空間打交道,我們知道Linux在用戶空間將所有設備當成文件來處理,在一般的驅動程序中都有提供fops接口,以及在/dev下生成相應的設備文件nod,而在輸入子系統的驅動中,這些動作都是在事件處理器層完成的,我們看看evdev.C相關代碼吧。


        評論


        技術專區

        關閉
        主站蜘蛛池模板: 青铜峡市| 肃南| 六枝特区| 嘉峪关市| 南京市| 外汇| 喀什市| 万安县| 浦县| 西藏| 恭城| 伊川县| 盐源县| 子洲县| 延寿县| 滨州市| 靖安县| 东至县| 桦南县| 阳高县| 明星| 大理市| 江北区| 建水县| 张家界市| 宁都县| 襄汾县| 海兴县| 达孜县| 阿鲁科尔沁旗| 安新县| 金塔县| 五指山市| 寿阳县| 孟州市| 石渠县| 汉沽区| 灌南县| 仙桃市| 神木县| 堆龙德庆县|