嵌入式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 |
状态 | 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. 输入子系统模型分析
2.1 整体框架:
输入子系统包括三个部分 设备驱动、输入核心、事件处理器。
第一部分 设备驱动

第二部分 输入核心 的作用如下:
(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).需要注意的是随着内核版本的发展,event handler将用来处理更多的不同硬件的输入事件。在Linux2.6.29版本中,剩下的特定设备事件处理就只有鼠标和joystick。这就意味着越来越多的输入设备将通过event
handler来和用户空间打交道。事件处理层的主要作用就是和用户空间打交道,我们知道Linux在用户空间将所有设备当成文件来处理,在一般的驱动程序中都有提供fops接口,以及在/dev下生成相应的设备文件nod,而在输入子系统的驱动中,这些动作都是在事件处理器层完成的,我们看看evdev.C相关代码吧。
评论