嵌入式操作系统Nucleus触摸屏驱动的开发

嵌入式操作系统Nucleus触摸屏驱动的开发

ID:41094803

大小:131.00 KB

页数:5页

时间:2019-08-16

嵌入式操作系统Nucleus触摸屏驱动的开发_第1页
嵌入式操作系统Nucleus触摸屏驱动的开发_第2页
嵌入式操作系统Nucleus触摸屏驱动的开发_第3页
嵌入式操作系统Nucleus触摸屏驱动的开发_第4页
嵌入式操作系统Nucleus触摸屏驱动的开发_第5页
资源描述:

《嵌入式操作系统Nucleus触摸屏驱动的开发》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、嵌入式操作系统Nucleus触摸屏驱动的开发本文详细分析在Nucleus下触摸屏驱动程序的开发,针对触摸屏控制芯片ADS7846,分析其配置、工作原理,以及如何加载到操作系统中。这些方法为手机,PDA触摸屏驱动的开发有一定的借鉴意义.       Nucleus是一款优秀的嵌入式实时操作系统(RTOS),具有抢占式和时间片轮转任务调度方式,主要用在时间苛刻的嵌入式应用当中。大约95%的Nucleus用ANSIC写成,作为一个库加载到应用代码当中。目前手机行业有很多使用Nucleus。1.触摸屏控制电路的硬件结构  触摸屏控制电路主要有一下四部分组成:进行数据处理、控制功能的MCU,一

2、个四线电阻式触摸屏和控制芯片ADS7846,以及显示触摸点坐标的显示部分。在这里主要对触摸屏的硬件电路和驱动设计做一个较详细的介绍ADS7846是美国TI公司推出的一款四线制电阻式触摸屏控制器,通过机械式触摸,可以迅速得到触摸点位置信号。它是一种典型的带有连续逼近型寄存器的A/D转换器,内部自带2.5V参考电压,一个和微处理器相连的SPI接口,同时具有测量温度、触摸压力和电池电压的功能,有可编程的8位或12位的分辨率。在2.7V电压和125kHz的转换速率下,功耗仅为750uW,在powerdown模式下仅为0.5uW。由于这些优良的性能,在移动设备中有大量的应用。下表为控制器的主要

3、引脚引脚名功能描述+Vcc逻辑正电源X+,Y+接触摸屏正电极X-,Y-接触摸屏负电极GND接地Vbat电源监控输入端PENIRQ中断输出端Vref参考电压输入输出端DOUT串行数据输出端DCLK外部时钟输入端DIN串行数据输入端BUSY忙信号输出端(低电平有效)CS片选工作原理:图2是触摸屏控制器和MCU的连接电路图。当ADS7846检测到触摸屏被按下时,它就会产生一个中断信号(PENIRQ为低电平)给MCU,MCU选中ADS7846控制器(CS为低),然后通过串行口DIN向ADS7846发送8位控制字,此后DOUT在DCLK的下降沿得到12位的输出。图3为ADS7846在每次转换为

4、24个时钟周期下的时序图。图22.Nucleus下ADS7846的驱动设计驱动设计的目的是将触摸坐标即时的转换为显示坐标,直接在LCD屏上显示出来,然后经过输入识别软件的处理(例如汉王的识别软件),识别出输入的字符,汉字等。2.1当触摸屏按下时,会产生一个中断,应当为ADS7846配置一个中断。在Nucleus下,中断分两种,Lowlevel中断(Lisr)和Highlevel中断(Hisr),一般的中断服务程序在Hisr当中处理。一个较为复杂的,多任务嵌入式系统当中,中断服务程序(优先级比普通任务的优先级高)不能占用太多的时间,否则可能会导致其他任务不能及时得到响应。例如在触摸屏中

5、断服务程序的处理,在较坏的情况下,触摸屏可能一直被按下去,其Hisr就会占用很多的资源,导致别的任务(例如一个手机应用当中,可能导致接受电话的任务不能处理,而这是不能让人接受的,不能想象当你写短信时不能接受电话的情况,)所以当中断服务程序需要占用CPU较多的处理时间时,一般要在另外激活一个任务,由任务调度机制来处理和系统中其他任务的关系,它的流程图如图四所示,实践证明,这种处理方法是较好的处理方法。图42.2这里不打算对怎么创建一个Lisr,Hisr和激活一个任务做太多的介绍,详细可以看Nucleus的文档。重点介绍ADS7846的驱动程序的处理和如何将所得数据在LCD上正确显示出来

6、。2.2.1ADS7846处理程序的流程图如图五所示图5ADS7846在计算触摸坐标时有两种方式,singleended模式和difference模式。Singleended模式利用ADS7846内部参考电压或者外部参考电压,得出的结果是一个电压的AD结果。Difference不需要内部或者外部的参考电压,这种模式得出的结果是触摸点在触摸屏位置上的百分比。这种模式可以消除参考电压波动对换算结果的影响。2.2.2ADS7846换算结果在LCD屏幕上的映射假设LCD是个160x128像素大小的屏幕,如图六所示,假设A点的坐标为(0,0),那么可知道B,C,D是(128,0),(0,160

7、),(128,160)。通过ADS7846得出A,B,C,D的转换结果分别是(Xa,Ya),(Xb,Yb),(Xc,Yc),(Xd,Yd),再得出屏幕中任意点X转换结果(Xx,Yx),那么X的坐标(x,y)可以通过下式算出来:X=Xb-Xa=Xd-XcY=Yc-Ya=Yd-Ybx=(Xx-Xa)*128/Xy=(Yx-Ya)*160/Y得出触摸屏的一系列坐标以后,作为手写识别软件的输入,就可得出输入的汉字,字符等。3.结论本文简单介绍了Nucleus下触摸

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。