新闻中心

EEPW首页 > 光电显示 > 设计应用 > 基于Linux系统的触摸屏驱动方案

基于Linux系统的触摸屏驱动方案

作者: 时间:2012-03-09 来源:网络 收藏

3.3 中断处理程序及事件报告

用户对进行按下、抬起和拖动等操作时,触发中断INT_TS,内核进入到中断处理函数tc_irq0进行中断处理。tcirq0中,通过ADC—LOCK锁机制保证只有一个程序使用ADC的中断线,通过读取ADCDAT0和ADCDAT1寄存器,判断触摸操作的状态,触摸笔按下时调用ts_timer_fireO进行数据转换。当数据转换完成时产进INT_ADC中断,内核进入中断处理函数adc—irqO,adc_irq()完成触点信息采集并调用ts_timer_fire()进行事件报告。事件报告流程如图2所示。

27.jpg27.jpg

ts_timer_fire0是主要完成触点坐标信息向应用层报告。updown、count为静态全局变量,updown触点状态,count代表1个jiffies时间内ADC转换的次数,count为0,设置自动X/Y轴坐标转换模式,转换完成后产生相应的INT_ADC中断通知转换完毕。count不为0,input_report_abs()函数向输入子报告X,Y绝对坐标事件,inputreport_key()对应按键被按下事件,输入子使用inputsync()将报告的事件组成一个evdev包,通过/dev/input/eventX发送出去,应用程序通过读取/dev/input/eventX即可获得事件信息。关键代码如下:

4 结论

随着信息技术的快速发展,嵌入式技术与人们的生活越来越紧密,作为一种新型输入设备因具有轻便、占用空间少、方便灵活等优点,应用逐渐普及,甚至在工业领域也得到了大量的应用,提高了我国工控自动化的水平。要充分发挥触摸屏的优点,嵌入式中设计至关重要。嵌入式输入子实现触摸屏时,利用了输入子系统提供标准事件接口,简化了驱动设计,驱动设计的重点变成了触摸屏控制器相关的硬件操作及功能实现,充分体现内核代码的高可重性,对其他类型输入设备驱动程序的设计有一定参考作用。

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

linux相关文章:linux教程



上一页 1 2 下一页

评论


相关推荐

技术专区

关闭