当前位置:首页 > 单片机 > 单片机
[导读]1.1.ADC知识ADC(AnalogtoDigitalConverter),可以接收8个通道的模拟信号输入,并将它们转换为10位的二进制。在2.5MHz的A/D转换时钟下,最大转化速率可达500KSPS(SPS:samplespersecond,每秒采样次数)。1.2.触摸

1.1.ADC知识

ADC(AnalogtoDigitalConverter),可以接收8个通道的模拟信号输入,并将它们转换为10位的二进制。在2.5MHz的A/D转换时钟下,最大转化速率可达500KSPS(SPS:samplespersecond,每秒采样次数)。

1.2.触摸屏硬件知识

触摸屏是当今最流行的一种人机交互接口,它被广泛地应用于手机等消费类电子产品中,目前这种技术有向PC机方向发展的趋势。基于原理的不同,触摸屏可以分为电阻式、电容式、表面声波式等。电阻式是应用较广的一种触摸屏,它的原理是通过测量横向和纵向的电阻值来获得触点的坐标。

1.3.电阻式触摸屏工作原理原理

触摸屏附着在显示器的表面,与显示器相配合使用,如果能测量出触摸点在屏幕上的坐标位置,则可根据显示屏上对应坐标点的显示内容或图符获知触摸者的意图。触摸屏按其技术原理可分为五类:矢量压力传感式、电阻式、电容式、红外线式、表面声波式,其中电阻式触摸屏在嵌入式系统中用的较多。电阻触摸屏是一块4层的透明的复合薄膜屏,如图2所示,最下面是玻璃或有机玻璃构成的基层,最上面是一层外表面经过硬化处理从而光滑防刮的塑料层,中间是两层金属导电层,分别在基层之上和塑料层内表面,在两导电层之间有许多细小的透明隔离点把它们隔开。当手指触摸屏幕时,两导电层在触摸点处接触。

触摸屏的两个金属导电层是触摸屏的两个工作面,在每个工作面的两端各涂有一条银胶,称为该工作面的一对电极,若在一个工作面的电极对上施加电压,则在该工作面上就会形成均匀连续的平行电压分布。如图4所示,当在X方向的电极对上施加一确定的电压,而Y方向电极对上不加电压时,在X平行电压场中,触点处的电压值可以在Y+(或Y-)电极上反映出来,通过测量Y+电极对地的电压大小,便可得知触点的X坐标值。同理,当在Y电极对上加电压,而X电极对上不加电压时,通过测量X+电极的电压,便可得知触点的Y坐标。电阻式触摸屏有四线和五线两种。四线式触摸屏的X工作面和Y工作面分别加在两个导电层上,共有四根引出线,分别连到触摸屏的X电极对和Y电极对上。五线式触摸屏把X工作面和Y工作面都加在玻璃基层的导电涂层上,但工作时,仍是分时加电压的,即让两个方向的电压场分时工作在同一工作面上,而外导电层则仅仅用来充当导体和电压测量电极。因此,五线式触摸屏的引出线需为5根。


1.4.S3C2440触摸屏接口

SOCS3C2440的触摸屏接口是与ADC接口结合在一起的,框图如下:


转换速率:当PCLK=50MHz时,分频设为49,则10位的转换计算如下:

WhentheGCLKfrequencyis50MHzandtheprescalervalueis49,

A/Dconverterfreq.=50MHz/(49+1)=1MHz

Conversiontime=1/(1MHz/5cycles)=1/200KHz=5us

ThisA/Dconverterwasdesignedtooperateatmaximum2.5MHzclock,sotheconversionratecangoupto500KSPS.

触摸屏接口的模式有以下几种:

普通ADC转换模式

独立X/Y位置转换模式

自动X/Y位置转换模式

等待中断模式

我们主要接受触摸屏接口的等待中断模式和自动X/Y位置转换模式(驱动程序中会用到):

自动转换模式操作流程如下:触摸屏控制器自动转换X,Y的触摸位置,当转换完毕后将数据分别存放在寄存器ADCDAT0和ADCDAT1.并产生INT_ADC中断通知转换完毕。

等待中断模式:

TouchScreenControllergeneratesinterrupt(INT_TC)signalwhentheStylusisdown.WaitingforInterruptModesettingvalueisrADCTSC=0xd3;//XP_PU,XP_Dis,XM_Dis,YP_Dis,YM_En.

当触摸后,触摸屏控制器产生INT_TC中断,四个引脚设置应该为:

引脚

XP

XM

YP

YM

状态

PULLUP/XPDisable

Disable(初始值即是)

Disable

Enable

设置

1

0

1

1

当中断产生后,X/Y的位置数据可以选择独立X/Y位置转换模式,和自动X/Y位置转换模式进行读取,采用自动X/Y位置转换模式进行读取需要对我们已经设置的TSC寄存器进行更改,在原有的基础上或上S3C2410_ADCTSC_PULL_UP_DISABLE|S3C2410_ADCTSC_AUTO_PST|S3C2410_ADCTSC_XY_PST(0)。

数据转换完毕后,也会产生中断。

2.芯片手册

3.mini2440电路图

4.S3C2440寄存器

ADCCONADC控制寄存器

主要设置分频,通道选择,有8路(AIN0~AIN3YMYPXMXP),启动A/D转换等。

ADCTSC触摸屏控制寄存器

设置工作模式,普通ADC转换模式、独立X/Y位置转换模式、自动X/Y位置转换模式、等待中断模式。

ADCDLY延迟寄存器

可以设置开始中断到真正开始A/D转换这段时间的延时长度,它的时钟源频率为3.68MHz。

ADCDAT0/ADCDAT1

X轴坐标值写入寄存器ADCDAT0的低10位中,Y轴坐标写入寄存器ADCDAT1的低10位中。

ADCUPDN抬起/落下

触笔抬起/落下中断状态寄存器ADCUPDN的低2位能够判断触笔在何种状态下引起的中断。

touch.h


[cpp]view plaincopy

/*******************************************************************

*Copyright(C),2011-2012,XXX.

*FileName:touch.c

*Author:HuangYinqing

*Version:1.0

*Date::2012-04-22

*Description:触摸屏驱动(中断方式).

*FunctionList:

*History:

******************************************************************/

#ifndef__TOUCH_H__

#define__TOUCH_H__

#defineADC_FREQ2500000//==ADC转换频率2.5M

#defineADC_PRS(50000000/ADC_FREQ-1)//==ADC预分频值

#defineADC_DELAY50000//==(1/50M)*50000=1ms

#defineDBG_TOUCH_LEVEL1

/*函数声明*/

voidTouchInit(void);

#endif


touch.c



[cpp]view plaincopy

/*******************************************************************

*Copyright(C),2011-2012,XXX.

*FileName:touch.c

*Author:HuangYinqing

*Version:1.0

*Date::2012-04-22

*Description:触摸屏驱动(中断方式).

*FunctionList:

*History:

******************************************************************/

#include"common.h"

#include"core.h"

#include"touch.h"

intxdata,ydata;//==坐标数据

/********************************************************************

函数功能:触摸屏中断函数。

入口参数:无。

返回:无。

备注:无。

********************************************************************/

staticvoid__irqTouchIntHandler(void)

{

staticunsignedlongulSaveAdcdly;

rSRCPND|=BIT_ADC;//清除这两个中断才能产生新的中断

rINTPND|=BIT_ADC;

/*转换完成中断*/

if(rSUBSRCPND&BIT_SUB_ADC)

{

rSUBSRCPND|=BIT_SUB_ADC;//清除子中断

while(!(rADCCON&0x8000));//checkifEC(EndofConversion)flagishigh,Thislineisnecessary~!!

xdata=(rADCDAT0&0x3ff);

ydata=(rADCDAT1&0x3ff);//[0..9]做转换后的数据A

DbgPrintX(DBG_TOUCH_LEVEL,"rx:%d;y:%dn",xdata,ydata);

rADCTSC=0xd3;//Waitingforinterrupt

rADCTSC=rADCTSC|(1<<8);//Detectstylusupinterruptsignal.

}

/*笔按下中断*/

if( r

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

基于ABB机器人生产线 ,设计了一种西门子PLC自保护智能控制系统 。该系统采用HK-FKGD40无线手持报警器 , 受机器人挤压时人员通过该报警器便可触发机器人智能判断 、自动回退运动实现自我解救 , 同时系统发出声光...

关键字: 无线手持报警器 自保护;智能 PLC ABB机器人 触摸屏

在科技飞速发展的当下,智能设备已深度融入人们的生活与工作。其中,PDA(Personal Digital Assistant,个人数字助理)作为一款集信息输入、存储、管理和传递于一体,且具备办公、娱乐、移动通信等多种功能...

关键字: 智能设备 触摸屏 微控制器

苏州 2025年5月27日 /美通社/ -- 5月24日-26日,第26届全国医院建设大会暨国际医院建设、装备及管理展览会(CHCC 2025)在武汉举行。艺卓(EIZO)携手术室视觉显示解决方案参展,以科技...

关键字: HC 医学影像 IO 触摸屏

随着手工酿造的普及和复杂程度的不断提高,许多酿酒师——尤其是小规模或独立的酿酒师——仍然依靠手工方法来记录和跟踪关键数据,如温度、pH值、体积和比重。这些读数通常使用手动仪器,记录在纸上或分散在电子表格和文档中,没有集中...

关键字: 触摸屏 物联网 DS18B20 传感器

随着嵌入式系统的广泛应用,触摸屏作为人机交互的重要接口,其驱动开发变得愈发重要。本文将详细介绍在嵌入式Linux环境下,触摸屏驱动的开发流程,从设备树的配置到校准算法的实现,为读者提供一个全面的开发指南。

关键字: 嵌入式Linux 触摸屏 校准算法 设备树

将您的树莓派Pico变成带有触摸屏界面的USB-HID设备!在这个项目中,我们将在Arduino IDE中设置编程环境,为3.5”Pico Touch LCD屏蔽配置库,测试基本功能,创建简单的按钮(用于复制和粘贴),显...

关键字: 树莓派 触摸屏 LCD Windows

ADS7846是美国Burr-Brown公司推出的新一代4线制触摸屏控制器,当与触摸屏连用,只要笔或手指点触摸在屏上时,即可迅速得到该点的位置信号以达到在触摸屏表面寻址的目的。

关键字: ADS7846 触摸屏

‌激光治疗仪触摸屏接口设计‌主要包括触摸屏的工作原理、控制器工作原理以及在激光治疗仪中的应用。

关键字: 触摸屏 激光治疗仪

中国深圳 – TITAN Haptics泰坦触觉宣布推出DRAKE LFi触觉马达,旨在满足中国电子市场不断增长的需求。DRAKE LFi专为需要触觉反馈的设备设计,例如触摸屏和触觉按钮。这款新型触觉马达能够提供精准的局...

关键字: 消费电子 触摸屏 可穿戴设备

虽然无数关于未来交通的文章都以四轮电动车作为讨论重点,但在印度、马来西亚、泰国和印度尼西亚等诸多国家,出行更依赖于经济的两轮电动车,包括踏板式摩托车、重型摩托车、电动摩托车、电动轻便摩托车和电动自行车。这些两轮电动车紧跟...

关键字: 电动车 触摸屏 触摸控制器
关闭