嵌入式linux 電阻觸摸屏 (s3c2440)編程
更多5線8線式的觸摸屏介紹:http://www.elecfans.com/baike/waijiepeijian/chugan/20100324205083.html?1324351403
更多資料:http://yunxiong1020.blog.163.com/blog/static/76344309201110283759386/
SOC S3C2440的觸摸屏接口是與ADC接口結(jié)合在一起的,框圖如下:
3,觸摸屏接口
XP、XM、YP、YM為四線電阻觸摸屏接口,四條信號線分別代碼的含義為:
nXPON | Plus X-axis on-off control signal | x軸正極開關(guān)控制信號 |
XMON | Minus X-axis on-off control signal | x軸負(fù)極開關(guān)控制信號 |
nYPON | Plus Y-axis on-off control signal | y軸正極開關(guān)控制信號 |
YMON | Minus Y-axis on-off control signal | y軸負(fù)極開關(guān)控制信號 |
(1)、普通ADC轉(zhuǎn)換模式
(2)、獨(dú)立X/Y位置轉(zhuǎn)換模式
(3)、自動X/Y位置轉(zhuǎn)換模式
(4)、等待中斷模式
我們主要接受觸摸屏接口的
更多詳細(xì)情況請查閱:數(shù)據(jù)手冊
等待中斷模式:
Waiting for Interrupt Modesetting value is rADCTSC=0xd3;
XP_PU, XP_Dis, XM_Dis, YP_Dis, YM_En.
當(dāng)觸摸后,觸摸屏控制器產(chǎn)生INT_TC中斷,等待中斷模式下, Modesetting value (四個(gè)引腳設(shè)置應(yīng)該為):
rADCTSC=0xd3;XP_PU, XP_Dis, XM_Dis, YP_Dis, YM_En.
當(dāng)觸摸后,觸摸屏控制器產(chǎn)生INT_TC中斷,四個(gè)引腳設(shè)置應(yīng)該為:
引腳 | XP | XM | YP | YM |
狀態(tài) | PULL UP/XP Disable | Disable (初始值即是) | Disable | Enable |
設(shè)置 | 1 | 0 | 1 | 1 |
當(dāng)中斷產(chǎn)生后,X/Y的位置數(shù)據(jù)可以選擇獨(dú)立X/Y位置轉(zhuǎn)換模式,和自動X/Y位置轉(zhuǎn)換模式進(jìn)行讀取,采用自動X/Y位置轉(zhuǎn)換模式進(jìn)行讀取需要對我們已經(jīng)設(shè)置的TSC寄存器進(jìn)行更改,在原有的基礎(chǔ)上,
S 3C2410_ADCTSC_PULL_UP_DISABLE| S3C2410_ADCTSC_AUTO_PST | S3C2410_ADCTSC_XY_PST(0)。
數(shù)據(jù)轉(zhuǎn)換完畢后,也會產(chǎn)生中斷,通知轉(zhuǎn)換結(jié)束。
2. 輸入子系統(tǒng)模型分析
2.1 整體框架:
輸入子系統(tǒng)包括三個(gè)部分 設(shè)備驅(qū)動、輸入核心、事件處理器。
第一部分 設(shè)備驅(qū)動
第二部分 輸入核心 的作用如下:
(1)
(2)
/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)
第三部分是 事件處理器:
handler(對于內(nèi)核文件evdev.C).需要注意的是隨著內(nèi)核版本的發(fā)展,event handler將用來處理更多的不同硬件的輸入事件。在Linux2.6.29版本中,剩下的特定設(shè)備事件處理就只有鼠標(biāo)和joystick。這就意味著越來越多的輸入設(shè)備將通過event
handler來和用戶空間打交道。事件處理層的主要作用就是和用戶空間打交道,我們知道Linux在用戶空間將所有設(shè)備當(dāng)成文件來處理,在一般的驅(qū)動程序中都有提供fops接口,以及在/dev下生成相應(yīng)的設(shè)備文件nod,而在輸入子系統(tǒng)的驅(qū)動中,這些動作都是在事件處理器層完成的,我們看看evdev.C相關(guān)代碼吧。
評論