触摸屏在S3C2410上的应用实例
- 格式:doc
- 大小:494.00 KB
- 文档页数:11
S3C2410触摸屏驱动程序原理图本文介绍了基于三星S3C2410X微处理器,采用SPI接口与ADS7843触摸屏控制器芯片完成触摸屏模块的设计。
具体包括在嵌入式Linux操作系统中的软件驱动开发,采用内核定时器的下半部机制进行了触摸屏硬件中断程序设计,采用16个时钟周期的坐标转换时序,实现触摸点数据采集的方法,给出了坐标采集的流程。
设计完成的触摸屏驱动程序在博创公司教学实验设备UP-NETARM2410-S平台上运行效果良好。
引言随着信息家电和通讯设备的普及,作为与用户交互的终端媒介,触摸屏在生活中得到广泛的应用。
如何在系统中集成触摸屏模块以及在嵌入式操作系统中实现其驱动程序,都成为嵌入式系统设计者需要考虑的问题。
本文主要介绍在三星S3C2410X微处理器的硬件平台上进行基于嵌入式Linux的触摸屏驱动程序设计。
硬件实现方案SPI接口是Motorola推出的一种同步串行接口,采用全双工、四线通信系统,S3C2410X是三星推出的自带触摸屏接口的ARM920T内核芯片,ADS7843为Burr-Brown生产的一款性能优异的触摸屏控制器。
本文采用SPI接口的触摸屏控制器ADS7843外接四线电阻式触摸屏,这种方式最显著的特点是响应速度更快、灵敏度更高,微处理器与触摸屏控制器间的通讯时间大大减少,提高了微处理器的效率。
ADS7843与S3C2410的硬件连接如图1所示,鉴于ADS7843差分工作模式的优点,在硬件电路中将其配置为差分模式。
图1触摸屏输入系统示意图嵌入式Linux系统下的驱动程序设备驱动程序是Linux内核的重要组成部分,控制了操作系统和硬件设备之间的交互。
Linux 的设备管理是和文件系统紧密结合的,各种设备都以文件的形式存放在/dev目录下,成为设备文件。
应用程序可以打开、关闭、读写这些设备文件,对设备的操作就像操作普通的数据文件一样简便。
为开发便利、提高效率,本设计采用可安装模块方式开发调试触摸屏驱动程序。
四 ARM9(S3C2440)的ADC和触摸屏控制——理论知识转载自:骨Zi里德骄傲概述10 位CMOS ADC(模/数转换器)是一个8 通道模拟输入的再循环类型设备。
其转换模拟输入信号为10 位二进制数字编码,最大转换率为2.5MHz A/D 转换器时钟下的500 KSPS。
A/D 转换器支持片上采样-保持功能和掉电模式的操作。
触摸屏接口可以控制/选择触摸屏X、Y 方向的引脚(XP,XM,YP,YM)的变换。
触摸屏接口包括触摸屏引脚控制逻辑和带中断发生逻辑的ADC 接口逻辑。
触摸屏接口模式1. 普通转换模式单转换模式是最合适的通用ADC 转换。
此模式可以通过设置ADCCON(ADC 控制寄存器)初始化并且通过读写ADCDAT0(ADC 数据寄存器0)就能够完成。
2. 分离的X/Y 方向转换模式触摸屏控制器可以工作在两个转换模式之一。
方向转换模式如下方法操作。
X 方向模式写X 方向转换数据到ADCDAT0,故触摸屏接口产生中断源给中断控制器。
Y 方向模式写Y 方向转换数据到ADCDAT1,故触摸屏接口产生中断源给中断控制器。
3. 自动(顺序)X/Y 方向转换模式自动(顺序)X/Y 方向转换模式操作如下。
触摸屏控制器顺序变换触摸X 方向和Y 方向。
在自动方向转变模式中触摸控制器在写入X 测量数值到ADCDAT0 和写入Y 测量数值到ADCDAT1 后,触摸屏接口产生中断源给中断控制器。
4. 等待中断模式当笔尖落下时触摸屏控制器产生中断(INT_TC)信号。
等待中断模式设置值为rADCTSC=0xd3; // XP_PU,XP_Dis,XM_Dis,YP_Dis,YM_En触摸屏控制器产生中断信号(INT_TC)后,必须清除等待中断模式。
(XY_PST 设置到无操作模式)待机模式当ADCCON [2]被设置为'1'时激活待机模式。
此模式中,停止A/D 转换操作并且ADCDAT0、ADCDAT1 寄存器包含的是先前转换的数据。
三星S3C2410芯片内部集成的LCD驱动控制器滚动屏幕的实现S3C2410X 支持硬件方式的水平和垂直滚屏。
要实现滚屏,可修改LCDSADDR1和LCDSADDR2寄存器中的LCDBASEU和LCDBASEL的值(如图所示)。
但不是通过修改PAGEWIDTH和OFFSIZE来实现。
对于STN类型的LCD,VFRAME和VLINE脉冲的产生取决于于LCDCON2/3寄存器中的HOZV AL和LINEV AL的配置,它们都与LCD屏的大小和显示模式有关。
换句话说,HOZV AL和LINEV AL可由LCD屏与显示模式决定,公式如下:HOZV AL = (水平显示尺寸/有效VD数据队列数)-1彩色显示模式下:水平显示尺寸=3 * 水平像素数在4位但扫描模式下,有效VD数据队列数应为4。
若用4位双扫描模式显示,有效的VD数据队列数也是4,但在8位但扫描模式下,有效的VD数据队列数应为8.单扫描情况:LINEV AL = (垂直显示尺寸)-1双扫描情况:LINEV AL = (垂直显示尺寸/2)-1LCDBASEU:对双扫描LCD:这些位只是帧缓冲区或在双扫描LCD时的上帧缓冲区的开始地址A[21:1]对单扫描LCD:这些位只是帧缓冲区的开始地址A[21:1]LCDBASEL:对双扫描LCD:这些位只是在使用双扫描LCD时的下帧存储区的开始地址A[21:1]对单扫描LCD:这些位只是帧存储区的末地址[21:1]LCDBASEL=((the frame end address)>>1)+1=LCDBASEU+(PAGEWIDTH+OFFSIZE)*(LINEV AL+1)注意:当LCD 控制器启用时,用户可通过改变LCDBSEU和LCDBASEL的值实现滚屏。
但是,在一帧结束时,LCDBASEU和LCDBASEL的值务必不能改变,可参考LCDCON1寄存器中的LINECNT域,因为LCD屏的显示也会出现错误。
Computer Knowledge and Technology 电脑知识与技术多媒体技术及其应用本栏目责任编辑:唐一东第6卷第19期(2010年7月)ISSN 1009-3044Computer Knowledge and Technology电脑知识与技术Vol.6,No.19,July 2010,pp.5321-5322E-mail:eduf@ Tel:+86-551-56909635690964基于S3C2410的触摸屏驱动开发及校准算法何世杰(解放军炮兵学院,安徽合肥230031)摘要:该文基于s3c2410微处理器,开发了嵌入式linux 操作系统的触摸屏驱动程序。
针对一些常见机械性误差,介绍了触摸屏校准算法,并详细讲解了三点校准算法的原理。
适用于嵌入式linux 操作系统的开发,特别是QT ,miniGUI 等图形界面的操作系统。
关键词:S3C2410;LINUX ;触摸屏驱动;三点校准法中图分类号:TP391文献标识码:A 文章编号:1009-3044(2010)19-5321-02S3C2410-based Touch-screen Driver Development and Calibration AlgorithmsHE Shi-jie(Artillery Academy of P.L.A,Hefei 230031,China)Abstract:Base on the s3c2410,this paper design a device drive of touch screen for Linux embedded operating system.Arm to the com -mon mechanical errors,this paper introduce the 3-Points calibration algorithm,which can be useful to the embedded operate system,espe -cial to the QT and miniGUI.Key words:S3C2410;LINUX,touch screen driver;3-Points calibration algorithm在小型化的设备中,输入和输出设备占据了很大的体积,而触摸屏集输入输出于一体,有效的减小了设备的体积;另外,触摸屏使人们摆脱了键盘和鼠标的操作,让人机交互更为直接。
网络信息工程2021.10基于S3C2410触摸屏驱动程序设计张鹏(汉中职业技术学院汽车与机电工程学院,陕西汉中,723002)摘要:本文所设计的基于S3C2410触摸屏驱动程序,利用ADS软件配置,其中程序中包含了触摸屏初始化模块、AD转换和采样数据处理模块等等,实现驱动触摸屏的目的。
关键词:S3C2410;ADS;触摸屏;嵌入式Design of touch screen driver based on S3C2410Zhang Peng(School of Automobile and Mechanical and Electrical Engineering,Hanzhong Vocation&l and Technical College,Hanzhong Shaanxi,723002)Abstrac t:The touch screen driver based on S3C2410is designed in this paper,which is configured by ADS software.The program includes touch screen initialization module,AD conversion and sampling data processing module,etc.to achieve the purpose of driving the touch screen.Keywords;S3C2410;ads;touch screen;embedded1S3C2410触摸屏设备及原理介绍触摸屏(touch screen)又称为触控屏或触控板,是一种便于接收触头等输入信号的感应式液晶显示设备,当接触到液晶显示屏幕时,屏幕上的触觉信号反馈系统就会根据预先编写的算法程序驱动各种外接设备,用以代替常规机械式的手动按钮面板,同时,借用液晶显示画面显示出形象生动的视觉效果。
触摸屏在S3C2410上的应用实例
宋成;孙广富
【期刊名称】《单片机与嵌入式系统应用》
【年(卷),期】2005(000)001
【摘要】给出S3C2410上触摸屏的实现原理、硬件结构和软件程序;对软件进行优化,改进软件滤波的实现方法.其算法使用C语言实现,可移植到任何操作系统的触摸屏驱动程序中.
【总页数】4页(P35-37,72)
【作者】宋成;孙广富
【作者单位】国防科技大学;国防科技大学
【正文语种】中文
【中图分类】TP368.1
【相关文献】
1.西门子触摸屏的纽态与应用入门讲座第8讲触摸屏应用实例 [J], 廖常初
2.基于S3C2410和LINUX的触摸屏驱动 [J], 马丽洁;李占岭
3.μC/GUI中触摸屏操作在S3C2410上的实现 [J], 赵瑞芳;唐焱;吴倚龙
4.基于S3C2410的触摸屏应用技术 [J], 梁明亮;姚存治
5.基于S3C2410触摸屏驱动程序设计 [J], 张鹏
因版权原因,仅展示原文概要,查看原文内容请购买。
S3c2410的触摸屏及模数转换作者:佚名转贴自:互联网点击数:298 更新时间:2006-6-15 文章录入:admin一、触摸屏的几个概念所谓触摸屏,从市场概念来讲,就是一种人人都会使用的计算机输入设备,或者说是人人都会使用的与计算机沟通的设备。
不用学习,人人都会使用,是触摸屏最大的魔力,这一点无论是键盘还是鼠标,都无法与其相比。
从技术原理角度讲,触摸屏是一套透明的绝对寻址系统,首先它必须保证是透明的,因此它必须通过材料科技来解决透明问题,像数字化仪、写字板、电梯开关,它们都不是触摸屏;其次它是绝对坐标,手指摸哪就是哪,不需要第二个动作,不像鼠标,是相对定位的一套系统,我们可以注意到,触摸屏软件都不需要游标,有游标反倒影响用户的注意力,因为游标是给相对定位的设备用的,相对定位的设备要移动到一个地方首先要知道现在在何处,往哪个方向去,每时每刻还需要不停的给用户反馈当前的位置才不致于出现偏差。
这些对采取绝对坐标定位的触摸屏来说都不需要;再其次就是能检测手指的触摸动作并且判断手指位置,各类触摸屏技术就是围绕“检测手指触摸”而八仙过海各显神通的。
1、触摸屏的第一个指针:光学特性。
它直接影响到触摸屏的视觉效果。
但是触摸屏是多层的复合薄膜,光学特性上包括四个方面:透明度、色彩失真度、反光性和清晰度。
彩色世界包含了可见光波段中的各种波长色,在没有完全解决透明材料科技之前,或者说还没有低成本的很好解决透明材料科技之前,多层复合薄膜的触摸屏在各波长下的透光性还不能达到理想的一致状态,下面是一个示意图(图6-1):图6-1由于透光性与波长曲线图的存在,通过触摸屏看到的图像不可避免的与原图像产生了色彩失真,静态的图像感觉还只是色彩的失真,动态的多媒体图像感觉就不是很舒服了,色彩失真度也就是图中的最大色彩失真度自然是越小越好。
平常所说的透明度也只能是图中的平均透明度,当然是越高越好。
反光性,主要是指由于镜面反射造成图像上重迭身后的光影,例如人影、窗户、灯光等。
第14章 触摸屏实例◆ 231 ◆ 电极对上加电压,而X 电极对上不加电压时,通过测量X +电极的电压,便可得知触点的Y 坐标。
图14-2 电阻式触摸屏的原理其实,电阻式触摸屏是利用了如图14-2(b )所示的分压器原理来产生触点电压的。
具体一点描述就是:以X 方向为例,假设整个X 导电层的电阻为R ,将X +接VREF ,X -接地,Y 方向不接电压,仅仅作为导电介质(可以理解成与触点相连的导线)。
当X 层和Y 层在某点处连通时,触摸点将X 层分为R 1与R 2两个电阻,假定X -的X 坐标为0,X +的X 坐标为X ,触点的X 坐标为XMES ,此时坐标、电阻、电压三者之间满足式(14-1-1)的关系。
XMES /X = R 2/R = VMES /VREF式(14-1-1)中,VREF 和X 已知,那么只要获取了VMES 的值就能求出XMES 。
Y 方向的坐标同理可得。
14.2 S3C2410的触摸屏控制要正确使用触摸屏,首先就要正确获取触摸屏的坐标。
上一节已经介绍了触摸屏的硬件原理,了解到需要分时给触摸屏的X 层或Y 层外加电压,再通过测量触点电压得到触点坐标。
那么触摸屏控制器的作用就是要实现为触摸屏的X 层或Y 层分时提供电压,同时还要获取触点电压,并通过模数转换器(ADC )将这个电压模拟量换成数字量。
14.2.1 S3C2410的ADC 及触摸屏接口原理如图14-3所示,S3C2410内部集成的一个外部晶体管控制器,为四线电阻式触摸屏提供nYMON 、YMON 、nXPON 和XMON 控制信号,这些控制信号用来实现对4个外部晶体管(需要硬件电路设计人员自行添加)的通断控制,进而实现分时为触摸屏的X 导电层、Y 导电层提供电压。
注意到,外部晶体管控制器还提供了一个引脚用来控制一个内部晶体管,该晶体管的导通与否决定了AIN7是否被上拉到VDDA_ADC 。
AIN7还连接到了S3C2410的中断发生器。
基于S3C2410的触摸屏控制设计作者:物理科学与信息工程学院 07级电科二班向倪 2007103041摘要:在介绍触摸屏工作原理的基础上,详细地阐述了s3C2410与触摸屏的硬件接p与软件实现。
利用双MOS管(P和N沟道)设计了触摸屏与s3C2410的接口电路。
并利用$3C2410的等待中断模式和自动XY坐标转换工作模式,读出与XY坐标有关的电压值,完成对触摸屏的控制。
引言:触摸屏(ts,Touch Screen)使人们摆脱了键盘和鼠标的操作,让人机交互更为直接。
它与鼠标这类相对定位系统的本质区别是一次到位的直观性。
作为一种方便、简单的操作手段,它广泛地应用于各类嵌入式产品中。
根据工作原理的不同,可将触摸屏分为四类:电阻式触摸屏、电容式触摸屏、红外线式触摸屏和声表面触摸屏。
电阻式触摸屏由于价格便宜,易于生产,不怕灰尘、油污和光电干扰等优点,是目前应用最为广泛的触摸屏。
$3C2410是三星公司推出的一款AMR9芯片,有丰富的外围功能模块,使用它的触摸屏接口可以方便地与触摸屏相联。
硬件结构:1、电阻式触摸屏工作原理电阻式触摸屏一般由三部分组成,两层透明的阻陛导体层及这两层之间的隔离层。
在没有外力时两个阻性导体层中间被微小透明的绝缘“分隔点”隔开,两层没有电气联系。
如果触摸屏的某一点被外力作用,则在这点的上下两阻性导体层便会相互接触。
工作时触摸屏上下导体层的电阻网络是交替工作的,当其中一层两端加上电压在层中的阻性导体中形成均匀的电压梯度时,另一层就作为侦测层工作。
很显然,由于接触点的位置不同,侦测层所得到是一个与位置有关的的电压,并且侦测层不应该对这个电压产生什么影响,工作时触摸屏的引脚状态如图1所示。
将接触点的电压通过AD转换读入CPU中,再经过一定的运算处理,就可以得到触摸点的坐标。
为了能分别检测一个点的x坐标和Y坐标,一阻性层形成的电压梯度应在x方向上,另一阻性层的电压梯度应在Y方向上。
因此,要获取屏上触摸点的坐标首先要对触摸屏的引脚进行切换控制,使其处于合适的状态,然后通过ADC转换采集接触点处的电压值,最后对采集的电压进行平均、坐标变换等后续处理,得到触摸点的坐标。
触摸屏在S3C2410上的应用实例[日期:2005-2-27] 来源:单片机及嵌入式系统应用作者:国防科技大学宋成孙广富[字体:大中小]摘要:给出S3C2410上触摸屏的实现原理、硬件结构和软件程序;对软件进行优化,改进软件滤波的实现方法。
其算法使用C语言实现,可移植到任何操作系统的触摸屏驱动程序中。
关键词:触摸屏S3C2410 滤波引言随着个人数字助理(PDA)、瘦容户机等的普及,触摸屏作为终端与用户交互的媒介,在我们的生活中使用得越来普遍。
触摸屏分为电阻式、电容式、声表面波式和红外线扫描式等类型,使用得最多的是4线电阻式触摸屏。
本文以三星公司ARM9内核芯片S3C2410触摸屏接口为基础,通过外接4线电阻式触摸屏构成硬件基础。
在此基础上,开发了触摸屏面图板程序。
1 触摸屏原理S3C2410接4线电阻式触摸屏的电路原理如图1所示。
整个触摸屏由模向电阻比和纵向电阻线组成,由nYPON、YMON、nXPON、XMON四个控制信号控制4个MOS管(S1、S2、S3、S4)的通断。
S3C2410有8个模拟输入通道。
其中,通道7作为触摸屏接口的X坐标输入(图1的AIN[7]),通道5作为触摸屏接口的Y坐标输入(图1的AIN[5])。
电路如图2所示。
在接入S3C2410触摸屏接口前,它们都通过一个阻容式低通滤器滤除坐标信号噪声。
这里的滤波十分重要,如果传递给S3C2410模拟输入接口的信号中干扰过大,不利于后续的软件处理。
在采样过程中,软件只用给特殊寄存器置位,S3C2410的触摸屏控制器就会自动控制触摸屏接口打开或关闭各MOS管,按顺序完成X坐标点采集和Y坐标点采集。
2 S3C2410触摸屏控制器S3C2410触摸屏控制器有2种处理模式:①X/Y位置分别转换模式。
触摸屏控制器包括两个控制阶段,X坐标转换阶段和Y坐标转换阶段。
②X/Y位置自动转换模式。
触摸屏控制器将自动转换X和Y坐标。
本文使用X/Y位置自动转换模式。
3 S3C2410触摸屏编程由于触摸屏程序中参数的选取优化需要多次试验,而加入操作系统试验参数,每次编译下载耗费时间过多,不易于试验的进行,因而我们直接编写裸机触摸屏程序。
三星公司开放了S3C2410测试程序2410test(可在三星网站下载),提供了触摸屏接口自动转换模式的程序范例,见本刊网站。
本文在此范例的基础上编写了触摸屏画图板程序——在显示屏上画出触摸笔的流走痕迹。
针对坐标点采样时产生的噪声,本文采用噪声滤波算法,编写了相应的噪声滤波程序,滤除干扰采样点。
整个触摸屏画图板程序的处理流程如图3所示。
3.1 程序初始化初始化触摸屏控制器为自动转换模式。
其中寄存器ADCDLY的值需要根据具体的试验选取,可运行本文提供的程序看画线的效果来选取具体的参数。
触摸屏中断处理程序Adc_or_ TsAuto是判断触摸屏是否被按下了。
触摸屏被按下,给全局变量Flag_Touch赋值为Touch_ Down,否则赋值为Touch_Up。
初始化脉宽调制计时器(PWM TIMER),选择计时器4为时钟,定义10ms中断1次,提供触摸屏采样时间基准,即10ms触摸屏采样1次。
计数器中断处理程序Timer4Intr 中判断Flag_Touch被赋值为Touch_Down,则给全局变量gTouchStartSample置位,以控制触摸屏采样。
之后清除触摸屏中断和计时器中断屏蔽位,接受中断响应,同时计时器开始计时。
3.2 触摸屏采样程序如果gTouchStartSample为TRUE,触摸屏接口开始对坐标X和Y的模拟量进行采样,根据试验选取适合的的采集次数。
本文中使用9次采集,分别记入到ptx[TouchSample]和pty[T ouchSample]数组中,TouchSample为采集次数。
为了减少运算量,将ptx[]和pty[]分别分三组取平均值,存储在px[3]和py[3]中。
这里以处理X坐标为例:px[0]=(ptx[0]+ptx[1]+ptx[2])/3;px[1]=(ptx[3]+ptx[4]+ptx[5])/3;px[2]=(ptx[6]+ptx[7]+ptx[8])/3;计算以上三组数据的差值:dlXDiff0=px[0]-px[1];dlXDiff1=px[1]-px[2];dlXDiff2=px[2]-px[0];然后对上述差值取绝对值,所得结果简称绝对差值:dlXDiff0=dlXDiff0>0dlXDiff0:-dlXDiff0;dlXDiff1=dlXDiff1>0dlXDiff1:-dlXDiff1;dlXDiff2=dlXDiff2>0dlXDiff2:-dlXDiff2;判断上述计算的色对差值是否都超过差值门限,如果这3个绝对差值都超过门限值,判定这次采样点为野点,抛弃采样点,程序返回等待下次采样。
其中的差值门限需要根据试验测试得到,本文取值为2。
找出其中绝对差值最小的2组数据,再将它们作平均,同时赋值给tmx:if(dlXDiff0<dlXDiff1){if(dlXDiff2<dlXDiff0){tmx=((px[0]+px[2]>>1);}else{tmx=((px[0]+px[1])>>1);}}else if(dlXDiff2<dlXDiff1){tmx=((px[0]+px[2])>>1);}else{tmx=((px[1]+px[2])>>1);}图3函数Touch_Coordinate Conversion完成触摸屏采样值转换成显示坐标,根据不同的硬件有不同的转换方法。
本触摸屏采样坐标及显示坐标如图4、图5所示。
其中TOUCH_MA X_X和TOUCH_MIN_X是触摸屏X坐标采样值的最大和最小值;Y坐标同理。
可以运行本文程序,同时使用触摸笔在触摸屏的4个角取得最大最小采样值。
这里使用的是320×240的T FT屏,所以TOUCH_X值为320。
下面是X坐标的转换程序:Touch_CoordinateConversio(int*px){TmpX=(tmx>=TOUCH_MAX_X)(TOUCH_MAX_X):*px;TmpX-=TOUCH_MIN_X;TmpX=(TmpX)TmpX:0;*px=(TmpX*TOUCH_X)/(TOUCH_MAX_X-TOUCH_MIN_X);}坐标滤波程序坐标滤波程序Touch_Pen_filtering,考虑人机界面中对触摸屏的操作有3种:*触摸笔在触摸屏上的位置不变;*触摸笔在触摸屏上连续滑过;*触摸笔在触摸屏上有大幅度的跳跃。
假设三次连续采样时刻为T1、T2、T3(T3>T2>T1),采样间隔为10ms。
由于采样间隔远小于人的反应时间,所以在前两种操作模式下,如果采样点有效,将T1和T3时刻的采样值作平均。
其平均值和T2时刻的采样值比较一般不会大于某个门限,否则判定此次采样点为野点。
而对于第三种模式下,采样点数据会有很大的跳变。
跳变过程中的数据是不稳定的,虽然记入了数据,但被判定成无效的采样点,所以需要在程序中定义一个静态数组x[2]记录相邻的两次采样数据。
只有当前后数据持续稳定一段时间,才认为这时的采样点有效。
程序中使用的间隔门限FILTER_LIMIT是需要经过试验来选取的。
这里只给出X坐标的滤波过程。
//*px为T3时刻的采样值,count是记录连续有效采样点次数的静态变量,标志当前数据持续稳定时间,一旦发现大于//FILTER_LIMIT,count的值又要从0开始计数。
Int Touch_Pen_filtering(int *px){BOOL retVal;Static int count=0;count++;//如果连续有效采样点次数大于2次,开始进行滤波算法if(count>2){count=2;//将T3时刻采样值和T1时刻采样值作平均TmpX=(x[0]+*px)/2;//计算平均值和T2时刻采样值的差值dx=(x[1]>TmpX)(x[1]-TmpX):(TmpX-x[1]);//如果差值大于门限值,说明T3的采样值无效,判为野点返回值为FALSE。
为了避免过大的跳跃,认为触摸笔坐标沿变,使用T2时刻采样值来代替本次采样点,同时静态变量x[]中的数据不变,count重新开始记录连续有效采样点次数if((dx>FIL TER_LIMIT)){*px=x[1];retVal=FLASE;count=0;}//否则采样点有效返回值为TRUE,将T3的采样点记入到x[1]中,T2的采样点移到x[0]中else{x[0]=x[1];x[1]=*px;retVal=TRUE;}}else{//连续有效采样次数小于2,将T3的采样值记入到x[1],T2的采样值移动到x[0],并不进行滤波处理x[0]=x[1];x[1]=*px;retVal=FLASE;}return retVal;}3.4 后续处理经过上述的筛选和滤波,如果被判定采样值有效,则将其滤波值送给操作系统进行后续处理,否则程序返回,等待下一次采样。
在2410 test程序中,可以结合LCD的画点函数,将有效的采样点在LCD上画出,以此检验参数设置是否合理。
结语本文以三星公司ARM9内核芯片S3C2410和4线电阻式触摸屏为硬件基础。
基于此硬件结构,开发了触摸屏画图板程序。
通过软件滤波,提高了系统性能,得到了很好的处理效果,有很强的实用性。
用此算法实现的Windows CE触摸屏驱动,在汉王手写输入软件的测试下得到了很高的识别率。
软件使用C语言实现,可以方便地移植到任何操作系统上。