嵌入式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接口結合在一起的,框圖如下:
3,觸摸屏接口
XP、XM、YP、YM為四線電阻觸摸屏接口,四條信號線分別代碼的含義為:
nXPON | Plus X-axis on-off control signal | x軸正極開關控制信號 |
XMON | Minus X-axis on-off control signal | x軸負極開關控制信號 |
nYPON | Plus Y-axis on-off control signal | y軸正極開關控制信號 |
YMON | Minus Y-axis on-off control signal | y軸負極開關控制信號 |
(1)、普通ADC轉換模式
(2)、獨立X/Y位置轉換模式
(3)、自動X/Y位置轉換模式
(4)、等待中斷模式
我們主要接受觸摸屏接口的
更多詳細情況請查閱:數據手冊
等待中斷模式:
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中斷,四個引腳設置應該為:
引腳 | XP | XM | YP | YM |
狀態(tài) | PULL UP/XP Disable | Disable (初始值即是) | Disable | Enable |
設置 | 1 | 0 | 1 | 1 |
當中斷產生后,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. 輸入子系統(tǒng)模型分析
2.1 整體框架:
輸入子系統(tǒng)包括三個部分 設備驅動、輸入核心、事件處理器。
第一部分 設備驅動
第二部分 輸入核心 的作用如下:
(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(對于內核文件evdev.C).需要注意的是隨著內核版本的發(fā)展,event handler將用來處理更多的不同硬件的輸入事件。在Linux2.6.29版本中,剩下的特定設備事件處理就只有鼠標和joystick。這就意味著越來越多的輸入設備將通過event
handler來和用戶空間打交道。事件處理層的主要作用就是和用戶空間打交道,我們知道Linux在用戶空間將所有設備當成文件來處理,在一般的驅動程序中都有提供fops接口,以及在/dev下生成相應的設備文件nod,而在輸入子系統(tǒng)的驅動中,這些動作都是在事件處理器層完成的,我們看看evdev.C相關代碼吧。
評論