Normal Conversion Mode:
正常转换模式,一般情况下可以配置ADCCON和ADCDAT0来读取数据。 2. Separate X/Y position conversion Mode:


x,y坐标分离转换格式,x坐标会写入ADCDAT0, y坐标会写入ADCDAT1,所以会产生2次中断开分开完成x,y的坐标转换。
Auto(Sequential) X/Y Position Conversion Mode
自动转换模式,当触摸屏按下后,会一次性对x,y方向的坐标进行转换,x坐标会写入ADCDAT0, x坐标会写入ADCDAT1。会产生一次中断进行x,y坐标的自动转换。
Waiting for Interrupt Mode:

等待中断模式 。可以设置rADCTSC=0xd3;也就是对应下图寄存器 // XP_PU, XP_Dis, XM_Dis, YP_Dis, YM_En.当产生中断信号(INT_TC)后,等待中断模式必须清除.(即XY_PST sets to the No operation Mode).
触摸屏TSC控制寄存器
电阻触摸屏的原理本质上就是ADC,ADC相关寄存器介绍详见s3c2440裸机-ADC编程 TSC相比ADC多了一个ADCTSC寄存器,如下图:

image
当bit[2]=0,normal mode时,那么bit[1:0]需要配置成01或者10进行手工测量x,y. 当bit[2]=1,auto mode时,那么bit[1:0]需要配置成0,进行自动测量。
触摸屏DATA寄存器
1.x坐标ADCDATA0

image
2.y坐标ADCDATA1

image
松开按下检测寄存器
这个寄存器可以检测是否有触摸中断产生,是按下触摸屏了,还是松开触摸屏了。

关键字:电阻触摸屏
引用地址:
s3c2440裸机-电阻触摸屏-2-触摸屏TS控制器
推荐阅读最新更新时间:2026-03-25 10:36
s3c2440裸机-电阻触摸屏编程(2.触摸屏TS控制器)
触摸屏接口模式 Normal Conversion Mode: 正常转换模式,一般情况下可以配置ADCCON和ADCDAT0来读取数据。 Separate X/Y position conversion Mode: x,y坐标分离转换格式,x坐标会写入ADCDAT0, y坐标会写入ADCDAT1,所以会产生2次中断开分开完成x,y的坐标转换。 Auto(Sequential) X/Y Position Conversion Mode 自动转换模式,当触摸屏按下后,会一次性对x,y方向的坐标进行转换,x坐标会写入ADCDAT0, x坐标会写入ADCDAT1。会产生一次中断进行x,y坐标的自动转换。 Waiting
[单片机]
s3c2440裸机-电阻触摸屏编程(1.电阻触摸屏原理)
一、电阻触摸屏原理 触摸屏包含上下叠合的两个透明层,一般覆盖在lcd表面,两个透明层是由均匀的电阻介质组成,如下图。 当触摸屏表面受到的压力(如通过笔尖或手指进行按压)足够大时,顶层与底层之间的薄膜会产生接触,此时会形成x方向和y方向的坐标。那么x,y坐标的值是怎么得来的呢?本质上就是通过ADC转换得来的。详解如下: 触摸屏的等效电路可以看成如下图: 计算触点的X,Y坐标分为如下两步(见下图): 1.计算Y坐标: 在Y+电极施加驱动电压Vdrive, Y-电极接地,由于上下两层膜形成触点,X+做为触点的引出端,测量得到接触点的电压,触点电压与Vdrive电压之比等于触点Y坐标与屏高度之比。如下图: 2.计算X坐标: 在X+电
[单片机]
s3c2440裸机-电阻触摸屏编程(5.触摸屏校准原理-五点校准法)
1.触摸屏校准原理 之前点的触摸屏解析出来的ADCDATA的bit 表示坐标ADC的转换结果,那么这些结果都是通过电压值来转换过来的。 所谓触摸屏校准,就是让触摸屏坐标(电压值)与LCD的坐标能够对应起来,所以校准就是要找到一个公式把电压值转换成和LCD宽高相符合的坐标值。 如下图,上面一层膜是TS触摸屏,下面一层是LCD显示屏,如果我们的LCD size是480*272,那么当我们点击触摸屏上的原点,那它的坐标可能不是(0,0),而是(X1', Y1'),因此我们需要对触摸屏进行校准,期望把x', y’的坐标能够映射成和lcd一样的坐标0,0. 那么如何较准呢,如下图以X方向为为例。 如果触摸
[单片机]
s3c2440裸机-电阻触摸屏编程(6.触摸屏校准实现-五点校准法)
前面我们讲过触摸屏触摸屏校准原理就是让lcd能够与触摸屏坐标对应起来。 一、五点法校准实现 一、我们取A,B,C,D,E这五个点,那么这个时候我们需要把该5个点的触摸屏和LCD的坐标对应起来,这就是校准的过程。 ①在LCD显示屏上A点显示一个“十字”形状 ②用户在触摸屏上点击对应A点的“十字”形状 ③记录触摸屏的数据坐标 同理在B,C, D, E点循环该①②③过程,就能得到这五点触摸屏坐标。 二 、然后根据这5个触摸屏坐标数据确定公式。 三 、以后得到TS触点坐标,即可校准出期待的TS坐标。 下面开始函数实现: 在LCD上显示 十字 形状,定义为函数fb_disp_cross() 记录触摸屏坐标,定义函数为ts_read_ra
[单片机]
十四、s3c2440裸机—中断控制器
14.1 中断体系 ARM 体系的CPU 有 7 种工作模式 用户模式(usr):ARM 处理器正常的程序执行状态 快速中断模式(fiq):用于高速数据传输或通道处理 中断模式(irq):用户通用的中断处理 管理模式(svc):操作系统使用的保护模式 数据访问终止模式(abt):当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护 系统模式(sys):运行具有特权的操作系统任务 未定义指令中止模式(und):当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真 可通过软件来进行模式切换,或者发生各类中断、异常时CPU自动进入相应的模式。除用户模式外,其他6种工作模式都属于特权模式,
[单片机]
s3c2440裸机开发调试环境(MDK4.72,Jlink v8,mini2440)
我的开发环境:windows 7 32位,J-linkv8,mini2440开发板一块。最后选择了:MDK4.72版本,J-ink v8的当前最新版本J-linkARM v4.94。 1)打开Keil uVision4新建一个工程: 2)新建一个目录用于存放我们的工程文件,这样我用新建一个test目录:并且取工程名为test并保存: 3)接下来选择CUP database:我们选择samsung的S3C2440A,点击OK;之后会出现第二个图问你是否拷贝'S3C2440.s'到工程文件夹并加入到工程里,S3C2440.s是启动代码我们选择YES 4)然后我们需要对S3C2440.s进行一些
[单片机]
linux上使用J-Link调试S3C2440裸机代码
工具: segger的jlink仿真器 segger的jlink for linux 交叉编译工具链里面的arm-xx-linux-xx-gdb 初始化脚本 工具安装 segger的jlink for linux 进入Segger官网--- Download--- J-Link/J-Trace--- J-Link Software and Documentation Pack。有deb、rpm、tgz三种包可供选择,随便选一个,我选的是tgz。由于我的仿真器是和谐版,所以我不敢选择高版本的J-Link,选择Older versions。下载一个比较老的,我下的是最老的。 解压至你要安装的目录。里面有个README.t
[单片机]
S3C2440之IIC裸机驱动
花了两天的时间终于把这个搞定了,其实I2C的原理还是比较简单的,只是几个细节性的东西还是需要特别的注意,主要是需要注意一下几点: 1.rIICCON &= ~0x10; 清中断必须要在rIICDS = slvAddr; 和rIICSTAT = 0xf0; // 主设备,启动 之后 2.延时对于写外部的低速设备来说非常重要,比如while(flag)之后一定要加延时,还有在写数据时发现只能写入基数地址的数据,这也是由于延时导致的 3.开始调试的时候系统总是死在read的函数中,后来发现在数据手册的note中说当读取最后一个数据的时候一定不能返回ACK信号,而我却在程序中使用while(flag)来等待ACK引发中断,这不死才怪呢。。
[单片机]