新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 嵌入式操作系统Nucleus下触摸屏驱动的开发

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

作者:时间:2009-11-05来源:网络收藏

是一款优秀的实时(RTOS),具有抢占式和时间片轮转任务调度方式,主要用在时间苛刻的应用当中。大约95%的用ANSI C 写成,作为一个库加载到应用代码当中。目前手机行业有很多使用

本文引用地址:http://www.eepw.com.cn/article/152301.htm

1. 控制电路的硬件结构

控制电路主要有一下四部分组成:进行数据处理、控制功能的MCU,一个四线电阻式和控制芯片ADS7846, 以及显示触摸点坐标的显示部分。

在这里主要对触摸屏的硬件电路和设计做一个较详细的介绍

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

引脚名
功能描述
+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在每次转换为24个时钟周期下的时序图。

图2

2.Nucleus下ADS7846的设计

设计的目的是将触摸坐标即时的转换为显示坐标,直接在LCD屏上显示出来,然后经过输入识别软件的处理(例如汉王的识别软件),识别出输入的字符,汉字等。

2.1 当触摸屏按下时,会产生一个中断,应当为ADS7846配置一个中断。在Nucleus下,中断分两种,Low level 中断(Lisr)和High level 中断(Hisr),一般的中断服务程序在Hisr当中处理。一个较为复杂的,多任务系统当中,中断服务程序(优先级比普通任务的优先级高)不能占用太多的时间,否则可能会导致其他任务不能及时得到响应。例如在触摸屏中断服务程序的处理,在较坏的情况下,触摸屏可能一直被按下去,其Hisr就会占用很多的资源,导致别的任务(例如一个手机应用当中,可能导致接受电话的任务不能处理,而这是不能让人接受的,不能想象当你写短信时不能接受电话的情况,)所以当中断服务程序需要占用CPU较多的处理时间时,一般要在另外激活一个任务,由任务调度机制来处理和系统中其他任务的关系,它的流程图如图四所示,实践证明,这种处理方法是较好的处理方法。

linux操作系统文章专题:linux操作系统详解(linux不再难懂)

上一页 1 2 下一页

评论


相关推荐

技术专区

关闭