您当前的位置:首页 > 详细页

如何判断屏幕是否被触摸,触摸屏维修知识

电阻式触摸屏在嵌入式系统中用的较多,电阻式触摸屏可分为四线、五线、七线等几种。由于使用WinCE触摸屏比较广泛,所以我们自己偶尔也会碰到这样或者那么样的问题。要是只是小问题,可能我们自己动一下手就可以处理,这又何乐而不为呢? 那如何判断屏幕是否被触摸?一旦完成了触摸屏硬件设置、初始化和基准参数校准后,接下来就需要用一种可靠的方法来判断屏幕是否被触摸了。WinCE提供了屏幕是否被触摸的检测机制,而且当触摸事件发生时还可选择是否中断主处理器。判断屏幕是否被触摸的驱动程序的函数名叫WaitForTouchState()。当屏幕被初次触摸时唤醒主机的中断,称为PEN_DOWN中断。这样做可以让驱动程序在屏幕没有被触摸时中断自己的执行,而不消耗任何CPU资源,而一旦用户触摸屏幕,驱动程序就被唤醒并进入转换模式。
当被唤醒后就有一组模数数据等待转换并产生中断信号。中断是硬件与软件打交道的重要方法,所以大多数驱动程序都涉及到中断处理。就中断处理而言, WinCE采用了一种独特的方法。它将中断处理分为两步:中断服务例程(ISR)和中断服务线程(IST)。具体来讲就是把每个硬件的设备中断请求 (IRQ) 和一个ISR 联系起来,当一个中断发生并未被屏蔽时,内核调用该中断注册的ISR。因为ISR 运行于内核模式,所以应该被设计得尽可能的短,ISR 的基本职责是引导内核调度和启动合适的IST。IST 在设备驱动程序软件模块中编写,它从硬件获取或向硬件发送数据和控制代码,并进一步处理设备中断。
WinCE触摸屏驱动程序是采用中断方式对触摸笔的按下状态进行检测,当检测到触摸笔按下时产生的中断,就会触发一个事件通知一个工作线程开始采集数据。同时,驱动将打开一个硬件定时器,只要检测到触摸笔仍然在按下状态,将定时触发同一个事件通知这个工作线程继续采集数据,直到触摸笔抬起后关闭该定时器。简单的说,就是驱动程序会同时采用触摸屏中断和定时器中断这两个中断源。目的在于不仅可以监控触摸笔按下和抬起状态,而且可以检测触摸笔按下时的拖动轨迹。触摸屏中断的两个逻辑中断分别是:SYSINTR_TOUCH是用于触摸笔点击触摸屏时产生相应的中断;SYSINTR_TOUCH_CHANGE 则用于触摸笔离开时产生相应的中断。
在理想情况下,校正触摸屏基准只需两组原始数据,即在屏幕对角读取的最小和最大值。但在实际应用中,因为许多电阻式触摸屏存在明显的非线性,如果只在最小和最大值之间简单的插入位置数值会导致驱动程序非常的不精确。因此,在WinCE中需要获取多个校准点,常用的校准点数量为5个。
方法是:①首先驱动程序在函数DdsiTouchPanelGetDeviceCaps 中设置校准点的个数;②是系统在 TouchDriverCalibrationPointGet中获取每个校准点的屏幕坐标;③是在屏幕界面的校准点坐标处显示一个位置符号,用户需要精确地在位置符号按下触摸屏;④驱动程序通过TouchPanelReadCalibrationPoint函数读取相应的触摸屏坐标值;⑤然后再开始下一个校准点,直到循环设定的次数后将采集到的触摸屏坐标值和校准点屏幕坐标送到TouchPanelSetCalibration函数中进行处理,该函数将产生校准基准参数。校准完成之后,触摸屏便可以开始正常的操作了

当你的各型号的变频器出现故障时、-------都可拿起您手边的电话与我们联系,本公司竭诚为您服务!
上一条:那如何校准触摸屏基准参数,触摸屏维修知识
下一条:触摸屏维修之读卡器刷卡器不读卡问题,触..