ARM2440 触摸屏(转载)

转载———
S3C2440的LCD是带触摸的,用的是很流行的便宜货--4线制的电阻触摸屏

4线制的电阻触摸屏的特点只需要4根信号线就可以判断出触摸的坐标了

电阻触摸屏类似于电阻分压原理,总共有4种工作模式,等待中断模式,分离的X/Y坐标转换模式,自动连续的X/Y坐标转换模式,普通的AD转换模式。

模式的不同也就对应于ADCTSC寄存器的配置不同

上电时候,复位值为0x58,就可以用作于普通的AD转换!

普通的AD转换:

前面说到ADCTSC就用复位置即可,需要配置的寄存器就是ADCCON,ADCDAT0,ADCDLY

ADCCON主要是些控制信号,位15可用来判断转换结束与否,位0可用来手动启动AD转换,启动后,位0会被硬件清掉。

ADCDAT0的位【9:0】用于保存转换的数值,精度10位而已。

ADCDLY用于设置采样的延迟,随便弄个,不要太离谱就行。


触摸屏模式:

ADCTSC可以说为触摸屏而生,位8用来表示是产生按下中断还是松开中断

等待中断分为2种,等待按下中断,等待松开中断

位2表示是自动的XY转换,还是分离的,设为自动的话,位1应该设置为00,为无操作模式

自动XY转换的时候,XM,XPYM,YP的状态不需要理会,触摸屏采样自己会控制

ADCDATn寄存器(0,1)保存转换的XY坐标数值,位15标明是按下还是松开了,以此判断选择进入的下一状态是什么。


编程思路:

只记下触摸屏的思路

首先设置好ADCTSC进入等待按下中断,当按下的时候,触发了中断,依据SUBSRCPND可知道是ADC转换完毕触发的,还是触摸屏被按下触发的(因为SRCPND中两个中断共用1位)分别跳转不同的中断入口,如果是按下的,则就设置好XY模式,开始XY的AD转换,转换结束后发生ADC中断,此时处理数据寄存器中的数据(如何处理,自己看着办),接着进入等待松开中断,如果松开了,就又回到了等待按下中断,如此循环即可

PS:注意中断的进入后,要记得清中断,清中断的顺序:SUBSRCPND-->SRCPND-->INTPND

猜你喜欢

转载自blog.csdn.net/jgj58/article/details/4256877