TQ2440触摸屏
s3c2440集成了4线制电阻式的触摸屏接口,触点坐标的检测是通过A/D转换来实现的。
s3c2440一共有4种触摸屏接口模式:
(1)等待中断模式
设置ADCTSC寄存器为0xD3即可令触摸屏控制器处于这种模式。这时它等待触摸屏被按下,当触摸屏被按下时,触摸屏控制器将发出INT_TC(INT_ADC的子中断)中断信号,这时触摸屏控制器要转入自动(连续)x/y轴坐标转换模式(或者转入分离的x/y轴坐标转换模式),以读取x、y坐标。
注:对于TQ2440,可以设置ADCTSC寄存器的位[8]为0或1,来决定是在按下时产生中断,还是松开时中断。
(2)分离的x/y轴坐标转换模式
设置ADCTSC寄存器为0x69进入x轴坐标转换模式,x轴坐标值转换完毕后被写入ADCDAT0,然后发出INT_ADC_S(INT_ADC的子中断)中断;
设置ADCTSC寄存器为0x9A进入y轴坐标转换模式,y轴坐标值转换完毕后被写入ADCDAT1,然后发出INT_ADC_S(INT_ADC的子中断)中断。
(3)自动(连续)x/y轴坐标转换模式
设置ADCTSC寄存器为0x0C进入自动(连续)x/y轴坐标转换模式,触摸屏控制器就会自动转换触点的x、y坐标值,并分别写入ADCDAT0、ADCDAT1寄存器中,然后发出INT_ADC_S(INT_ADC的子中断)中断。
(4)普通转换模式
不使用触摸屏时,触摸屏控制器处于这种模式。
其中,自动(连续)XY坐标转换模式和等待中断模式应用比较常见。
下述内容摘自:http://blog.csdn.net/zhaocj/article/details/5510536
等待中断模式是在触笔落下时产生一个中断,在这种模式下,A/D触摸屏控制寄存器ADCTSC的值应为0xD3,在系统响应中断后,XY坐标的测量模式必须为无操作模式,即寄存器ADCTSC的低两位必须清零。
自动(连续)XY坐标转换模式是系统依次转换触点的X轴坐标和Y轴坐标,其中X轴坐标值写入寄存器ADCDAT0的低10位中,Y轴坐标写入寄存器ADCDAT1的低10位中,在这种模式下,系统同样会产生中断信号。
在一般情况下,为实现触摸屏功能,先是设置为等待中断模式,在产生中断后,再设置为自动(连续)XY坐标转换模式,依次读取触点的坐标值。
在实现触摸屏功能的过程中,除了上面介绍的几个寄存器外,还会用到以下寄存器。寄存器ADCTSC的第8位能够实现是触笔落下中断还是触笔抬起中断,如果写过基于视窗应用程序的人对这一点会很熟悉,它就好像单击鼠标操作一样,一次单击操作包括两个动作:按下和释放,这两个动作可以完成不同的命令。寄存器ADCTSC的第3位可以选择上拉电阻的使能,在等待中断模式下,上拉电阻要有效,在触发中断后,上拉电阻要无效。寄存器ADCTSC的第2位用于选择自动(连续)XY坐标转换模式。触笔抬起/落下中断状态寄存器ADCUPDN的低2位能够判断触笔在何种状态下引起的中断。A/D延时寄存器ADCDLY可以设置开始中断到真正开始A/D转换这段时间的延时长度,它的时钟源频率为3.68MHz。在ADC转换过程中使用的时钟源为GCLK,最大50MHZ。这一点在TQ2440数据手册中有注释,如下图所示:
注意:针对ADC转换完成产生的中断是INT_ADC_S,针对触摸屏所产生的中断则是INT_TC。这两个中断都是总中断INT_ADC的子中断。对这两个子中断的中断处理函数都是安装在pISR_ADC(在2440addr.h中定义)。
TQ2440触摸屏的更多相关文章
- 基于设备树的TQ2440触摸屏驱动移植
平台 开发板:tq2440 内核:Linux-4.9 u-boot:u-boot-2015.04 概述 之前移植了LCD驱动,下面继续移植触摸屏驱动,然后将tslib也移植上去. 正文 一.移植触 ...
- 【Linux开发】【Qt开发】嵌入式Qt程序使用触屏或USB鼠标方式
上文<嵌入式Qt开发-移植到ARM开发板 >介绍了Qt程序的移植,本文再说下如何使开发板Qt程序使用触摸屏或USB方式进行交互. 之前刚把一个qt程序移植到arm板上成功运行显示时就开心的 ...
- TQ2440实现触摸屏和qt图形 解决segmentation fault
使用触摸屏,首先安装触摸屏矫正程序. 下载并解压tslib-1.4,进入主文件夹,运行: 1 [root@localhost ~]#./autogen.sh 2 [root@localhost ~]# ...
- linux 输入子系统之电阻式触摸屏驱动
一.输入子系统情景回忆ING...... 在Linux中,输入子系统是由输入子系统设备驱动层.输入子系统核心层(Input Core)和输入子系统事件处理层(Event Handler)组成.其中设备 ...
- 讓TQ2440也用上設備樹(1)
作者:彭東林 郵箱:pengdonglin137@163.com QQ:405728433 開發板 TQ2440 + 64MB 內存 + 256MB Nand 軟件 Linux: Linux-4.9 ...
- u-boot-2015.04 在tq2440上的移植(使用spl引导u-boot)
本次移植跟以往的不同之处是采用了spl来引导u-boot,参考了博客http://blog.csdn.net/fulinus/article/details/42738641 下载链接:http:// ...
- 基于TQ2440的SPI驱动学习(OLED)
平台简介 开发板:TQ2440 (NandFlash:256M 内存:64M) u-boot版本:u-boot-2015.04 内核版本:Linux-3.14 作者:彭东林 邮箱:pengdongl ...
- 联想A880 DIY 换触摸屏屏幕
今年初入手的Lenovo A880手机,由于摔坏了屏幕不过能正常显示,咨询了联想的售后,说触摸屏和显示屏是分离的,换触摸屏需要280左右 为发挥DIY的精神,准备自己来处理这个屏幕 第一步:购买屏幕, ...
- 嵌入式Linux驱动学习之路(十九)触摸屏驱动、tslib测试
触摸屏使用流程: 1. 按下产生中断. 2.在中断处理程序中启动AD转换XY坐标. 3.AD转换结束并产生AD中断. 4. 在AD的中断处理函数中上报信息,启动定时器. 5. 定时器时间到后进入中断, ...
随机推荐
- python笔记34-类里面的__str__ 和__unicode__作用
前言 最近学django,看到不少教程里面models.py里面建表,写一个类的时候,习惯上加个__str__ ,开始不太明白,简单的实践后才知道是为了美化类实例的打印内容. python3 里面用_ ...
- Tomcat启动log打印到INFO: At least one JAR was scanned for TLDs yet contained no TLD各种解决方式
问题: 启动tomcat时,catalina.out日志打印到如下内容就停止不动了,也不报错 SEVERE: FarmWarDeployer can only work as host cluster ...
- Weblogic12C 集群实现session同步
测试地址:http://vanatita.com/ 刷新可以看见效果 读取 Session ID=gnFx9OTVFkfNOWCXFqQqeZi07m9BdHhvnqCv0Cq1t3n1EA2ljUG ...
- [Web 前端] React Js img 图片显示默认 占位符
cp from : https://blog.csdn.net/wyk304443164/article/details/77093339 没有考虑到兼容性,因为我们暂时只适配了webkit. 也没有 ...
- Orchard之生成新模板
一:启用 Code Generation 进入后台, Modules –> Developer Enable 之. 二:生成模版 首先,进入 Orchard 命令行 在 CMD 下到达解决 ...
- java中 列表,集合,数组之间的转换
java中 列表,集合,数组之间的转换 java中 列表,集合,数组之间的转换 java中 列表,集合,数组之间的转换 List和Set都是接口,它们继承Collection(集合),集合里面任何数据 ...
- Keras教程
In this step-by-step Keras tutorial, you’ll learn how to build a convolutional neural network in Pyt ...
- 如何打开google,facebok等网站
用记事本打开 C:\WINDOWS\System32\drivers\etc\hosts 文件,粘贴如下蓝色内容到文件里,然后输入 例如 https://www.google.com https: ...
- 谈谈Enter回车键提交表单那些事 回车搜索 enter搜索
我们在做系统前端的时候,往往会用到form标签,采用jquery插件做表单验证.我们信誓旦旦的一位把一切都做好的时候,并且检查一遍又一遍的时候,意向不到的事情发生了,也许是出于一种意外,而这种意外我们 ...
- 多线程学习-ListenableFuture使用介绍以及示例
Guava为Java并行编程Future提供了很多有用扩展,其主要接口为ListenableFuture,并借助于Futures静态扩展.ListenableFuture顾名思义就是可以监听的Futu ...