新闻中心

EEPW首页>电源与新能源>设计应用> 嵌入式ARM下的触摸屏驱动系统设计研究

嵌入式ARM下的触摸屏驱动系统设计研究

作者: 时间:2012-05-25 来源:网络 收藏
对应于AD7873设备,设计编写的数据结构如下:

本文引用地址://m.amcfsurvey.com/article/230449.htm

其中,driver中定义了名称、总线类型和所有者。

probe函数为探测设备的函数。其主要进行初始化设备数据结构、初始化中断、向设备发送控制字等。

remove函数为设备移除函数。其主要进行移除设备文件、释放中断、释放设备。

suspend为设备暂停函数。

resume为设备恢复函数。

(2设备初始化函数staticint__initad7873_nit(void)即是注册上述数据结构,也即是注册一个,其中主要的内容为:

returnspi_register_driver(ad7873_driver);(3)还要设计一个重要的函数,就是中断函数,在被按下的时候产生中断,在中断函数中的重要工作就是启动定时器,以判断触摸后的动作是触摸笔被提起还是继续按下。其函数原型设计为staticirqreturn_tads7873_irq(intirq,void*handle);(4)定时器函数设计的目的就是判断是否被提起,被提起就立刻刷新设备的数据到应用层,仍然处于"按下"状态,则需要继续测量。其函数原型设计为:

staticvoidads7873_timer(unsignedlonghandle);

3.3驱动的编译和加载

驱动程序加入内核有两种方式动态和静态,动态就是只是把驱动编译为模块,系统启动后执行insmod后加载,静态是指直接编译进内核,系统启动后自动加载了。由于我们的驱动需要经过测试才能加入内核,因此采用动态的方式加载驱动。

在已经安装好开发平台的主机上执行make,就可以得到目标文件ad7873.ko,这就是我们需要的驱动。在platform_data数据结构中设置好驱动需要的数据,如中断、大小、触摸压力上下限等数值,并编译好内核下载到开发板中运行。然后将ad7873.ko复制到开发板,在终端下执行insmodad7873.ko,得到如下提示:

图4驱动加载信息

显示驱动已经加载成功,中断号为126.

(注:"thissectencehasbeen",为调试驱动中断的测试语句)然后用应用广泛的tslib触摸屏测试程序对驱动进行测试,测试结果显示,触摸屏工作正常。下图触摸屏上白色的字"桂林电子科技大学触摸屏"为在tslib的测试程序下用触摸笔写的字,证明了触摸屏工作是正常的。

将此设计应用到家庭智能网关系统中,证明其工作稳定,响应很快。

图5触摸屏正常响应图



关键词:ARM触摸屏驱动

评论


相关推荐

技术专区

关闭