基于S3C2410微处理器的触摸屏设计
中。实现的过程主要是通过一个循环,只有在事件队列的头、尾指针不重合时,才能成功的从tsdev.tail指向的队列尾部读取到一组触摸信息数据,并退出循环。否则调用读取函数的进程就要进入睡眠。
坐标读取函数s3c2410_get_XY()
在定时器中断处理程序中,当查询到与相连的EINT5/GPF5为低电平时,即表示有有效事件,应该调用s3c2410_get_XY()函数采集笔触信息。
ADS7843有多种转换时序,时序规定了芯片与设备及CPU间是如何配合工作的。设计中采用16个时钟周期启动一次转换的坐标转换方式。ADS7843的操作时序如图5所示。坐标的读取是通过多次采集取平均值的方法,以X坐标的读取为例,其读取过程如图6所示。循环过程中的每一步都在8个时钟周期内完成,数据的处理严格按照时序进行,Y坐标的采集与X坐标类似。
图5 ADS7843操作时序
图6 X坐标采集流程
结语
在触摸屏的设计中,抗干扰设计是难点和重点,直接关系到触摸屏的工作性能。实验发现坐标采集时,丢弃第一次采集值读取的坐标转换值效果较好。本文所介绍的驱动程序已经在博创公司的教学实验设备UP-NETARM2410-S平台上经过实际验证,从数据稳定性和系统负载的角度看,效果良好。同时通过修改程序内部的定时器时钟频率可以改变笔在屏上移动所产生的数据量。
参考文献:
1. 毛德操,胡希明著.Linux内核源代码情景分析.杭州:浙江大学出版社,2001
2. 孙天泽,袁文菊,张海峰等.嵌入式设计及Linux驱动开发指南.北京:电子工业出版社,2005
3. R Love. Linux内核设计与实现. 陈莉君,康华,张波等译.北京:机械工业出版社,2006
4. 殷惠莉,刘少君,黄道平.基于uClinux触摸屏的设计.电子工程师.2004(2) .
- 基于s3c2410的CramFS根文件系统的移植(07-13)
- AD7888与S3C2410的SPI接口及Linux下嵌入式驱动的实现(11-06)
- 基于WinCE的ARM视频监控系统(11-14)
- 基于WinCE的I2C驱动程序设计(04-24)
- WinCE下光电编码器的驱动程序设计(04-12)
- 嵌入式Win CE中CAN总线控制器的驱动设计与实现(05-01)