努力成为linux kernel hacker的人李万鹏原创作品,为梦而战。转载请标明出处
http://blog.csdn.net/woshixingaaa/archive/2011/05/20/6434725.aspx
S3C2440支持的是4线电阻式触摸屏,这里简单说一下触摸屏基本原理,目前的触摸屏种类有:阻型触摸屏,容性触摸屏,多点触摸。阻性触摸屏通常由三部分组成:上下两层透明的(ITO氧化铟)导体层,两层导体之间的间隔层和电极。触摸屏工作时,上下导体层各自构成了一个电阻网络,分别称为X层,Y层,X层在左右两电极,Y层在上下两电极分别引出信号,一共引出4个信号,构成所谓的4线电阻。当某一层加上电压时,会在该网络上形成电压梯度。如有外力使得上下两层在某一点接触,则在电极未加电压的另一层可以测得接触点的电压。得到的电压值通过A/D转换,就可相应的判断接触点的坐标。说白了,阻性触摸屏可以想象成两个方向的滑动变阻,当手点上时两个接触面被接触上,接触位置不一样相当于滑动位置不一样。
再来说一下S3C2440使用的ADC控制器,是一个10位的8通道的模数转换器。在2.5MHz的A/D转换时钟下,最大的转换速率可达500KSPS(SPS:sample per second,每秒采样的次数)。S3C2440的4个控制信号的引脚与AD的4个模拟信号输入引脚复用。从下图中可以看出ADC和触摸屏只有一个A/D转换器(A/D Converter),可以通过设置寄存器来选择对哪路模拟信号(多达8路)进行采样。图中有两个中断信号:INT_ADC,INT_TC,前者表示A/D转换器已经转换完毕,后者表示触摸屏被按下了。
在Linux内核的触摸屏驱动中采用了延时进行消抖和算术平均值法进行滤波,这里分析一下s3c2410_ts程序,首先来看模块的初始化函数:
下面来看一下IRQ_TC的中断处理函数:
下面看一下这个实际进行中断处理的函数:
如果AD转换完成,会调用AD完成的中断处理程序:
分享到:
相关推荐
Linux驱动修炼之道-触摸屏驱动之s3c2410_ts源码分析.pdf Linux驱动修炼之道-SPI驱动框架源码分析(中).pdf Linux驱动修炼之道-SPI驱动框架源码分析(下).pdf Linux驱动修炼之道-SPI驱动框架源码分析(上).pdf ...
s3c2410驱动代码,触摸屏驱动程序,还不错的coding style
linux-2.6.28在mini2440上的移植之s3c2410_ts触屏驱动的移植-http___www.usr.cc_bbs_thread-1456-1-1.pdf
完整的触摸屏驱动(有注释),让你初步了解字符驱动的内在细节,希望你能够帮助到你!
结合我的博客,下载该文件不需改动;内核在别的目录,需改动。
嵌入式设备驱动。s5pc100_ts s3c2410_ts.c 代码分析。1.TS是字符设备。 2.TS驱动使用了平台 设备机制。 3.TS驱动使用了输入子系统。...4. S3C2410_TS.C这个驱动与ADC.C驱动之间有着C/S的关系。
| |-- S3C2410 I2C主机驱动 | | |-- i2c-s3c2410.c | | |-- iic.h | | |-- regs-gpio.h | | `-- regs-iic.h | `-- SAA711x I2C设备驱动 | `-- saa711x.c |-- 16 | `-- CS8900以太网设备驱动 | |-- cs89x0.c | `-- cs...
mini2440开发板的触摸屏驱动程序!基于linux2.6内核!
嵌入式linux基本内核模块,2410触摸屏框架程序,内核模块的基本框架
| |-- S3C2410 I2C主机驱动 | | |-- i2c-s3c2410.c | | |-- iic.h | | |-- regs-gpio.h | | `-- regs-iic.h | `-- SAA711x I2C设备驱动 | `-- saa711x.c |-- 16 | `-- CS8900以太网设备驱动 | |-- cs89x0.c | `-- cs...
| |-- S3C2410 I2C主机驱动 | | |-- i2c-s3c2410.c | | |-- iic.h | | |-- regs-gpio.h | | `-- regs-iic.h | `-- SAA711x I2C设备驱动 | `-- saa711x.c |-- 16 | `-- CS8900以太网设备驱动 | |-- cs89x0.c | `-- cs...
| |-- S3C2410 I2C主机驱动 | | |-- i2c-s3c2410.c | | |-- iic.h | | |-- regs-gpio.h | | `-- regs-iic.h | `-- SAA711x I2C设备驱动 | `-- saa711x.c |-- 16 | `-- CS8900以太网设备驱动 | |-- cs89x0.c | `-- cs...
linux触摸驱动-曦华触摸cvt_ts驱动源码,已经适配3.10版本内核
linux触摸驱动程序,曦华IC,cvt_ts
基于S3C2410X开发板上的 UDA1341TS音频播放驱动程序
针对2440核心板,电容触摸屏驱动,输入子系统方式
* s3c2410-ts.c (linux-2.6.30.10/S3C2440A) * s3c2410 touch screen driver * Wed Oct 8 00:34:44 CST 2014
硬件环境:SBC-2410X开发板(CPU:S3C2410X) 内核版本:2.6.11.1 运行环境:Debian2.6.8 交叉编译环境:gcc-3.3.4-glibc-2.3.3 第一部分 声卡UDA1341TS驱动程序播放部分的移植 一、从网上将Linux内核源代码下载到本...
git pull https://github.com/onitake/gslx680-acpi.git cd gslx680-acpi make sudo make install rmmod silead rmmod gslx680_ts_acpi cp silead_ts.fw /lib/firmware/ modprobe gslx680_ts_acpi