Linux设备驱动工程师之路——触摸屏驱动s3c2410_ts.c分析

Linux设备驱动工程师之路——触摸屏驱动s3c2410_ts.c分析

K-Style

转载请注明来自于衡阳师范学院08电2 K-Style http://blog.csdn.net/ayangke,QQ:843308498 邮箱:[email protected]

一、触摸屏硬件知识

1.模块原理图

S3C2440有8路的ADC通道其中触摸屏控制器接口XP,XM,YP,YM与四路ADC通道复用四个IO引脚。从原理图看出8路ADC只有一个A/D转换器,通过一个8选1开关MUX来选通哪一路A/D通道进行转换。触摸屏控制会产生两个中断,一个触摸屏中断INT_ADC,一个ADC_转换完成中断INT_ADC。ADC需要时钟才能工作,因为它需要设置采样率。

Linux设备驱动工程师之路——触摸屏驱动s3c2410_ts.c分析_第1张图片

再复习一下ARM裸机实验时触摸屏寄存器操作流程

流程:

初始化

1设置采样延时和分频值ADCDLY ADCCON

2中断相关设置

3设置触摸屏AD转换为等待中断模式 ADCTSC

中断服务函数

4清相关挂起寄存器

5设置转换模式,一般为连续x,y转换

6 启动转换

7 转换完成后读取x y坐标ADCDAT0ADCDAT1

8 设置触摸屏AD转换为等待中断模式,设置等待弹起中断ADCTSC

9 弹起中断发生后,设置触摸屏转换为等待中断模式,等待下一次触笔按下rADCTSC

程序

二、触摸屏驱动程序

1.模块初始化


我们再来看看模块初始化函数中初始化触摸屏的IO引脚的s3c2410_ts_connect();函数

触摸屏控制器接口是与IO端口复用的。

2.触摸屏中断服务函数

我们再来看touch_timer_fire(0);这个函数


3.ADC中断


PS:最近准备做一个网络视频监控系统,很久木有更新啦。


你可能感兴趣的:(linux)