触摸屏驱动开发——转载

本文详细介绍了Windows CE5.0中触摸屏驱动的开发,包括驱动程序模型、DDSI函数集、触摸屏驱动实现、四线电阻式触摸屏的工作原理、接口部分、控制器硬件配置以及中断处理。通过对AD转换、中断源管理和滤波程序的讨论,展示了触摸屏坐标如何转化为屏幕坐标的过程,并提到了触摸屏的校准流程。
摘要由CSDN通过智能技术生成
               

说明:本文来自网络,但是没有署名作者,所以我也不知道是谁的,如果原作者看到,请通知我,我会给标明作者

触摸屏驱动开发

1.触摸屏驱动程序的模型

1.1 分层触摸屏驱动层序结构

本触摸屏驱动采用那个分层驱动程序结构,其驱动模型如下图所示,这种结构将驱动程序代码区分为上层模型设备驱动层(MDD),下层是依赖平台的驱动层(PDD)。其中MDD层通常无需修改就可以直接使用,改部分提供面向GWES的DDI的接口,而MDD通过指定的DDSI函数接口调用PDD,这就是我们通常驱动要实现的部分。PDD部分和MDD部分除了DDSI函数集接口外,还要实现一些指定的变量的定义或变量初始化动作(比如,gIntrTouch和gIntrTouchChanged在PDD层定义,但主要在MDD层使用。),也就是说MDD层和PDD层之间并不一定是以严格的分层模型来实现的,有时候也要通过共享变量的方式来完成交互。

 

1.2 DDI函数集(MDD层)

 

TouchPanelPowerHandler(BOOL boff)

Touch Screen的电源管理函数,boff:TRUE表示关闭电源,FALSE表示打开电源,其只是调用DdsiTouchPanelPowerHandler()函数,该函数在进入或退出poweroff状态时产生。

 

TouchPanelCalibrationAPoint()

该函数用于校准输入的触摸屏坐标,把触摸屏坐标转换为显示坐标,利用了公式Sx=A1*Tx+B1*Ty+C和Sy=A2*Tx+B2*Ty+C2。

 

TouchPanelReadCalibrationPoint()

在执行触摸屏校准程序时,用这个函数获得在当前校准点的十字形上点击的触摸屏坐标。

 

TouchPanelReadCalibrationAbord()

该函数在校准取消时被调用(在触摸屏校准程序运行过程中取消校准),仅仅设置状态位和事件后返回。

 

TouchPanelDisable()

禁用触摸屏(touch panel)设备,该函数关闭ISR,停止中断和注销事件及其他同步手段,此函数调用了DdsiTouchPanelDisable()函数。

 

TouchPanelEnable(PFN_TOUCH_PANEL_CALLBACK    pfnCallback)

PfnCallback是指向处理touch panel事件的回调函数,该函数的执行动作:

⑴创建事件hTouchPanelEvent和hCalibrationSampleAvailable,其中当触笔按下或抬起,或者定时器中断时会触发hTouchPanelEvent事件,而在校准状态下当有校准数据输入时会触发hCalibrationSampleAvailable事件。

 

⑵初始化临界区,初始化所需的触摸屏中断gIntrTouch和gIntrTouchChanged,并且把它们关联到事件hTouchPanelEvent中。

 

⑶创建IST TouchPanelpISR,并设定其优先级。

 

TouchPanelSetCalibration()

该函数通过运行触摸屏校准程序时的校准动作获得显示坐标(Sx,Sy)和触笔在十字形上按下的触摸坐标(Tx,Ty)用于计算校准参数A1,B1,C1和A2,B2,C2。

 

TouchPanelGetDeviceCaps()

用于查询触摸屏设备支持的具体功能,通过DDSI函数查询相应的信息,当查询屏幕坐标信息时保存屏幕信息,供后面程序计算校准参数所用。

 

TouchPanelSetMode()

用于设置触摸屏的工作模式(采用低采样率还是高采样率),当设置IST优先级时直接通过内核API来完成,而直接将其他设置交给DdsiTouchPanelSetMode()函数来处理。

 

1.3 DDSI函数集(PDD层)

 

DdsiTouchPanelGetDeviceCaps(INT iIndex, L

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值