• 触屏版java手机qq通用 > 触摸屏学习及触控程序开发(一)
  • 触摸屏学习及触控程序开发(一)

    免费下载 下载该文档 文档格式:DOC   更新时间:2010-05-06   下载次数:0   点击次数:1
    文档基本属性
    文档语言:Simplified Chinese
    文档格式:doc
    文档作者:萝卜家园
    关键词:
    主题:
    备注:
    点击这里显示更多文档属性
    这里侧重介绍电阻触摸屏.电阻触摸屏非常普及,你会发现许多评估板和开发套件中都集成了电阻触摸屏.电阻触摸屏普及的主要原因是价格便宜,而且在电气上可以直接接入用户的系统中.
    之所以叫电阻触摸屏,是因为它们本质上就是电阻分压器.它们由两个电阻薄层组成,这两个薄层被非常薄的绝缘层隔开,绝缘层通常以塑料微粒子的形式存在.当你触摸屏幕时,会使两个电阻薄层变形到足以使它们之间发生电气连接.然后由软件通过检测分压器上产生的电压计算出两层的短接位置,并最终确定触摸位置.
    电阻触摸屏分为几种类型,比如"四线","五线"和"八线".线越多,精度就越高,温度漂移也越少,但基本的操作是一样的.在最简单的四线设计中,有一层称为"X轴"的电阻层,上面加有一定的电压,另一个称为"Y轴"的电阻层作为接受层测量对应X轴位置的电压值.这一过程再反过来执行一遍,即Y轴层加电,X轴层用于电压检测.
    图2是电阻触摸屏的简单等效电路.注意必须获取二个完全独立的读数,即X轴位置和Y轴位置数据.这些数据在四线或五线电阻触摸屏中是无法同时读取的.软件必须先读一个轴,然后再读另外一个轴.读取的顺序则无关紧要.
    将电阻触摸屏产生的电压转换成数字需要用到模数转换器(ADC).直到不久前这个ADC几乎一直是主CPU的外围器件.Burr Brown NS7843或NS7846就是这种ADC控制器.该器件为12位的模数转换器,其内嵌的逻辑电路通过交替给一个薄层加电,再从另外一层转换来控制触摸屏.虽然可以使用诸如GPIO之类的信号线来完成薄层加电的切换,但该器件能够分担许多任务,还能提供产生触摸或笔压中断的方式.
    最近有几家CPU制造商开始在主CPU中集成ADC模块和专用的触摸屏控制电路.在消费类设备,远程信息通信或一些面向其它市场的产品中,LCD显示屏和触摸屏非常普遍,当想把CPU用于这类产品中时,在CPU中集成ADC和触摸屏控制电路的做法会非常有意义.
    基于两种CPU的参考板
    本文设计两种集成了触摸屏控制功能的CPU的参考板.这二种CPU都基于ARM处理器架构.
    第一块板是飞思卡尔的MX9823ADS评估板,采用了飞思卡尔的MC9328MX1处理器.该评估板可以直接从飞思
    卡尔的分销商处定购.评估套件包括QVGA(240x320)彩色LCD和触摸屏.
    第二块板采用了夏普LH79524 ARM处理器.这块夏普的参考板以及集成的显示和触摸套件都可以从LogicPD公司处定购.有几种可更换的显示套件供选择,分辨率范围从QVGA到800x600像素不等.
    本文中不提供每个驱动程序的详细代码,而是介绍驱动程序的设计和流程,并重点介绍其中的重要部分.读者可以从ftp://ftp.embedded.com/pub/2005/07maxwell下载每个驱动程序的全部源代码.总的来看,软件提供的功能完成以下这些步骤:
    1. 配置控制器硬件
    2. 判断屏幕是否被触摸
    3. 获得稳定的,去抖动的位置测量数据
    4. 校准触摸屏
    5. 将触摸状态和位置变化信息发送给更高层的图形软件
    下面开始详细介绍每个步骤.
    硬件配置
    触摸驱动程序要做的第一件事是配置硬件.对这些集成控制器来说,这意味着通过向映射到存储器的寄存器中写入数据将控制器配置成某个确定状态.这一过程是由每个驱动程序中的TouchConfigureHardware()函数完成的.
    为了配置硬件,需要事先做好某些决定.例如,驱动程序应该使用中断驱动吗 为了获得能够响应并且精确的触摸位置信息需要什么样的转换速率 让我们看看做出这些决定的具体过程吧.
    图2:触摸屏电路简单等效电路.
    关于触摸驱动程序是否应该使用中断驱动,事实上在范例的驱动程序中用的就是中断驱动方式.坦率地讲,我之所以这样做是因为使用中断很有趣.千万不要由这个例子推断出采用中断永远是最好或最正确的设计方式,也不要听信别人说不采用中断驱动方式的触摸驱动程序就是"错误的".
    之所以这样说只是因为"轮询"对嵌入式系统程序员来说似乎变成了贬义词.我曾经问过一位客户,他的输入设备采用的是轮询还是中断服务方式.回答是"这是嵌入式系统,我们不做任何轮询".我当时感觉问这个问题时我就像一个傻瓜,但进一步探讨后发现查询其实也是一种合理且值得考虑的方式.如果使用的是RTOS,并且所有任务经常为了等待某类外部事件而被中断,处理器经常处于空闲的循环状态,没有什么有意义的事做.这种情况下使用空闲任务查询触摸屏上的输入也许是更好的设计方式.根据你的总体系统需求,查询也可能是一个值得考虑的合理的设计方式.

    上一页下一页

  • 下载地址 (推荐使用迅雷下载地址,速度快,支持断点续传)
  • 免费下载 DOC格式下载
  • 您可能感兴趣的
  • 手机qq斗地主java触屏  全触屏java手机qq软件  java手机qq触屏版  手机qq音乐java全触屏  手机qq2012全触屏java  触屏java手机qq浏览器  手机qq视频版java触屏  手机qq触屏通用版java  手机2012qq触屏版java