一.触摸屏工作原理
使用触摸屏接口功能,AIN[7],AIN[5]用于对触摸屏模拟信号进行转换。
本例中,触摸屏面板XP引脚与AIN[7]连接,YP引脚与AIN[5]连接,为了控制触摸屏面板XP,XM,YP,YM引脚,S3C2440芯片外使用了4个外部晶体管,控制信号nYPON,YMON,nXPON,XMON和这4个晶体管连接。
使用触摸屏操作步骤:
(1)用外部晶体管连接到触摸屏面板的引脚及S3C2440引脚
(2)选择使用分别X/Y位置转换模式或自动连续X/Y位置转换模式去获得X/Y位置
(3)设置触摸屏接口为等待中断模式
(4)如果中断出现,分别X/Y位置转换模式或自动连续X/Y位置转换模式中的一种模式被激活
(5)得到X/Y位置相应的值以后,返回到等待中断模式
触摸屏接口模式
(1)通常转换模式
当设置ADCTSC寄存器中AUTO_PST=0,XY_PST=00,ADC被设置为通常ADC转换模式,这种模式通过设置ADCCON和ADCTSC寄存器进行初始化,读ADCDAT0寄存器XPDATA域的值,结束一次转换
(2)分别X/Y位置转换模式
由两种转换模式组成,X位置测量模式和Y位置测量模式。
第一种模式以如下方法被操作:
当设置ADCTSC寄存器中,AUTO_PST=0,XY_PST=01,表示X位置测量模式,
这种模式下,触摸屏X位置转换数据被写到ADCDAT0寄存器的XPDATA域,转换后,触摸屏接口产生中断源INT_ADC到中断控制器。
第二种模式以如下方法被操作:
当设置ADCTSC寄存器中,AUTO_PST=0,XY_PST=10, 表示Y位置测量模式,
这种模式下,触摸屏Y位置数据被写到ADCDAT1寄存器的YPATA域,转换后,触摸屏接口也产生中断源INT_ADC到中断控制器
(3)自动连续X/Y位置转换模式
当ADCTSC寄存器中AUTO_PST=1,XY_PST=00,设置为自动连续X/Y位置转换模式,
触摸屏控制器自动转换X位置和Y位置,触摸屏控制器写X测量数据到ADCDAT0寄存器的XPDATA域,写Y测量数据到ADCDAT1寄存器的YPDATA域。自动连续位置转换以后,触摸屏控制器产生中断源INT_ADC到中断控制器。
(4)等待模式
当ADCTSC寄存器中AUTO_PST=0,XY_PST=11,设置为等待中断模式,它等待触针向下动作出现。当触摸屏面板触针向下动作出现,触摸屏控制器产生中断INT_TC信号,中断发生后,可设置为分别X/Y位置转换模式或自动连续X/Y位置转换模式,读入X和Y位置的对应值。
#include <linux/errno.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/slab.h>
#include <linu