嵌入式系统中的电容触摸屏驱动开发
电容触摸方案

三、方案详述
1.合法合规性
(1)严格遵守国家关于电子信息产品的相关法规及标准;
(2)选用环保材料,确保产品对人体及环境无害;
(3)符合RoHS指令要求,降低有害物质含量;
(4)进行可靠性测试,确保产品在正常使用条件下的性能稳定。
2.技术选型与设计
(1)触摸技术:采用高性能、多点触控的电容触摸技术;
(2)采用高精度生产设备,提高生产效率;
(3)加强生产过程控制,降低不良率;
(4)成品检测:确保产品符合设计方案。
四、实施策略
1.组建专业的项目团队,明确各成员职责;
2.编制详细的设计文档,指导设计工作;
3.开展技术选型、设计优化、算法优化等工作;
4.组织生产制造,确保产品质量;
5.进行产品测试,验证方案效果;
6.持续优化,提升产品性能。
五、风险评估与应对措施
1.技术风险:关注行业动态,及时更新技术方案;
2.合规风险:与政府部门保持沟通,确保方案合法合规;
3.市场风险:深入了解市场需求,适时调整产品策略;
4.生产风险:加强生产过程控制,提高生产效率。
六、总结
本方案旨在为某电子产品提供一整套合法合规、性能优越的电触触摸解决方案,满足市场需求,提升用户体验。在实施过程中,需密切关注各方面风险,确保项目顺利进行。通过本方案的实施,将为产品带来更高的市场竞争力,满足用户需求。
1.确保电容触摸技术的合法合规性,遵循相关法规和标准;
2.提高触摸屏的灵敏度、准确性和稳定性;
3.提升用户体验,降低误触率;
4.优化触摸屏结构设计,降低成本。
三、方案内容
1.合法合规性
(1)遵循国家相关法规和标准,如《电子信息产品污染控制管理办法》等;
MCGS嵌入版设备驱动开发文档

MCGS嵌入版设备驱动开发文档一、MCGS嵌入版这是指我们的嵌入版组态软件,他的组态环境与通用版一样,也是运行于通用PC的Windows(95,98,Me,2000)操作系统上的软件。
但是,他的运行环境是运行于嵌入式操作系统(如Window )上的软件。
二、嵌入式设备驱动用C++(VC&EVC)编写的,供嵌入版组态软件调用的动态连接库。
使用它的目的是为了控制外部设备。
即主程序通过调用动态连接库(嵌入式驱动程序)来与外部设备(硬件)通讯。
这些驱动程序通常是操作嵌入式系统的串口,网口等各种I/O端口。
三、嵌入式驱动的接口函数。
在这里,我们用标准的动态连接库的输出函数来实现需要的各种功能。
动态连接库(驱动程序)中对外接口函数共有15个,编制驱动主要工作是编制各个函数,函数由主程序调用,不同的驱动在函数内部处理也不同。
1,SvrGetProperty2,SvrSetProperty3,SvrCollectDevData4,SvrGetChannel5,SvrDoHelp6,SvrEditCustomProperty7,SvrEditProperties8,SvrEnumPropertyValue9,SvrExitDevRun10,SvrGetDevInfo11,SvrInitDevRun12,SvrInitDevSet13,SvrDevIOCtrl14,SvrSetRunIDispatch15,SvrSetSetIDispatch函数的功能:1.MCGS_DLL_FUNC SvrGetProperty(MCGS_DATA& data,CStringArray& strPropertyName, CStringArray& strPropertyValue, CArray<bool,bool>& bPropertyHasValueArray) /// 函数功能:设置设备属性列表/// 函数返回:TRUE,固定/// 参数意义:data MCGS传过来的MCGS_DATA结构的指针/// strPropertyName 设备属性的名称的数组/// strPropertyValue/// 设备属性的当前值的数组/// bPropertyHasValueArray/// 指定设备属性是否具有取值列表的数组,/// true 表示有,false 表示没有。
嵌入式(in-cell)触摸屏技术发展综述

嵌入式(in-cell)触摸屏技术发展综述作者:刘清泉来源:《中国新通信》2015年第20期【摘要】科技飞速发展,嵌入式触摸屏技术的发展速度也越来越快,人们对多媒体数据的查询要求越来越高,嵌入式产品在各行各业都普遍得到应用,逐渐渗透到生活中。
【关键词】嵌入式触摸屏技术一、嵌入式触摸屏相关概念1.1嵌入式触摸屏概念触摸屏技术作为一种交互式输入设备,因其相对于鼠标和键盘,具有操作简单,使用灵活等特点,在日常生活中有助于提高用户的使用积极性,同时在工业领域也得到了极大的应用,利用液晶屏的显示和触摸屏的输入,通过虚拟键盘写入操作指令和工作参数实现了人与机器的交互,能够完成绝大部分的传统控制面板,节约了计算机的宝贵硬件资源,在一定程度上也减小工程开发难度。
1.2嵌入式触摸屏的特点1.2.1操作简单在使用触摸屏进行人机对话时,使用者在人机交互界面上,用户只需要对自己所需要的内容进行触摸,系统就会根据你点击的区域内容进行响应,很方便的完成了信息查询。
对于很多没有接触过电脑不懂得如何操作电脑人群来说触摸屏系统不会像传统的计算机那样驾驳,也不会有使用鼠标和键盘时候的茫然,便于接受、易于操作。
1.2.2使用灵活触摸屏作为一个输入设备,该系统相对于其它数字系统不需要外围的鼠标和键盘设备,触摸屏系统的人机对话完全由软件决定,在编写软件时候只需要把所有功能都加载在软件界面或者菜单下就可以,触摸屏操作者只需要点击菜单下选项就可以得到需要的信息。
1.2.3经济性触摸屏的操作简单、使用灵活决定了它具有良好的商业价值,所有产品只有具备良好的大众基础才拥有广阔的市场触摸屏简单易操作的特点让没有任何计算机操作基础的人都能使用,所以注定会有广泛的的用途。
而且有触摸屏设计的人机交互界面越来越丰富,触摸屏的动画效果也更加吸引人。
所有这些特点注定了触摸屏系统拥有良好的经济实用性。
三、嵌入式触摸屏研究现状3.1国内研究发展现状触摸屏出现在中国市场上到现在己经二十余年的时间,刚开始还有很多人不接受这种新兴的多媒体设备,这其中还包括一些正计划应用触摸屏设备的系统工程师,都还把触摸屏当成是一个可以用其他代替的设备,不过从触摸屏应用比较发达的国家所经历的情况来看,这是对新技术了解不深和对其认识不足有很大的关系,这是一种比较普遍的情况。
嵌入式系统中的电容触摸屏驱动开发

( )设 置参数 3
计 算机应 用 与软件
/¥ 设置 M l T uh u i oc 坐标范围 , 据 L D分辨率 为 12 x 8 t 根 C 0 4 7 设置 x 6 坐标 的范围是 0— 0 4 Y坐标的范围是 0~ 6 / 12 , 78
ip ts n u et a s l a
的全局结构变量 :
s t tu ti m i sr c 2c b a d i f c i c o r n o mx 2c h b a d s or
— — — — — —
( )注册输入 设备 。注 册 函数 为 : tip trg tr dv e 3 i u— eie— ei n n s c
第1 0期
郭 小梅 : 入 式 系统 中的 电容 触摸 屏驱 动 开发 嵌
poe 该函数原型如 下 : rb ,
sa i n x i 2e t t t i tpic r i s c
_ —
25 6
1C接 口只需要 S L时钟 和 S A数据 两根 信号线 , 2 C D 另外 , 当 有手指点击 电容触摸屏 时 , T ea6 A m g18采 样到坐标值 后 , 产生 会
i p t i p t alct n u = n u l ae o
— —
.
rs e ume = p x i 2c t ic r i s
— — —
rue em , s
/ 电源管理唤醒函数 /
.
i—a l = px i ic t i dt e b ie _2 s d, r
d v e ) ei ( ; c
t s
_
d vr= { i re
.
p o e函 数 rb
嵌入式系统的驱动程序开发

嵌入式系统的驱动程序开发嵌入式系统是指集成了电子、计算机科学和软件工程等多个学科的领域,它是一种特定用途的计算机系统。
嵌入式系统通常用于工业控制、汽车电子、智能家电以及医疗设备等领域。
而嵌入式系统的驱动程序开发则是其中一个非常重要的环节,它负责控制硬件设备并与操作系统之间进行交互。
本文将从需求分析、环境搭建、开发流程和调试过程等方面详细介绍嵌入式系统的驱动程序开发。
一、需求分析在开始开发嵌入式系统的驱动程序之前,我们首先需要进行需求分析。
这一阶段的主要目标是了解系统的功能要求以及所涉及的硬件设备。
需要明确以下几个方面的内容:1. 硬件设备:对于每一个需要开发驱动程序的硬件设备,我们需要了解其型号、接口类型、通信协议等信息。
2. 功能要求:了解硬件设备在系统中所需的功能,如读取传感器数据、控制执行器、与其他设备进行通信等。
3. 性能要求:确定系统对驱动程序性能的要求,如实时性、稳定性、可扩展性等。
二、环境搭建开发嵌入式系统的驱动程序需要搭建适当的开发环境,以便编写、调试和测试程序。
以下是搭建开发环境的主要步骤:1. 选择适当的开发板:根据硬件设备的要求,选择一款适合的开发板。
开发板上通常集成了一些基本的硬件设备,可以帮助我们进行调试和测试。
2. 安装交叉编译工具链:由于嵌入式系统通常运行在不同的硬件平台上,所以我们需要使用交叉编译工具链来生成目标平台上可执行的代码。
3. 配置开发环境:根据开发板的型号和需求,配置开发环境,包括安装驱动程序、配置编译选项、设置编译器等。
三、开发流程在进行嵌入式系统的驱动程序开发时,我们通常按照以下步骤进行:1. 设计接口:定义硬件设备与驱动程序之间的接口,包括寄存器定义、函数接口等。
2. 编写初始化函数:初始化函数负责配置硬件设备的寄存器,并将其设置为适当的工作状态。
3. 编写读写函数:根据硬件设备的功能要求,编写相应的读写函数。
使用合适的通信协议与设备进行通信。
4. 实现中断处理:如果硬件设备支持中断功能,我们需要编写中断处理函数,用于处理硬件设备的中断事件。
触摸屏驱动原理

触摸屏驱动原理
触摸屏驱动原理基于电容变化的测量原理。
触摸屏是由一层导电膜覆盖在玻璃或塑料表面上形成的,平常不产生电流。
当手指或其他物体触摸到屏幕上时,触摸屏会感应到电流的变化。
触摸屏驱动器通过相应的算法来检测这些电流变化,并将其转化为对触摸点位置的坐标数据。
常见的触摸屏驱动技术有四种:电容式、电阻式、表面声波和红外线。
1. 电容式触摸屏驱动原理:
电容式触摸屏采用两层导电板构成电容,在不触摸屏幕时,电容平衡。
当手指触摸到屏幕上时,由于人体电容的存在,导致电容发生变化。
触摸屏驱动器会检测到变化的电容值,并通过测量和计算来确定触摸点位置。
2. 电阻式触摸屏驱动原理:
电阻式触摸屏由两层导电薄膜构成,中间夹有绝缘层。
当触摸屏被触摸时,导电薄膜会接触到一起,形成电阻的变化。
触摸屏驱动器通过测量电阻的变化来确定触摸点位置。
3. 表面声波触摸屏驱动原理:
表面声波触摸屏利用超声波传感器将声波传输到触摸屏表面。
当有物体触摸到触摸屏时,声波会被打断并反射回传感器。
触摸屏驱动器通过测量声波传输和反射时间的差异来确定触摸点位置。
4. 红外线触摸屏驱动原理:
红外线触摸屏在触摸屏表面周围设置红外线发射器和接收器,形成网状的红外线检测区域。
当有物体触碰到触摸屏时,会阻挡红外线的传输。
触摸屏驱动器会通过检测到的红外线被阻挡的位置来确定触摸点位置。
不同类型的触摸屏驱动原理各有优缺点,适用于不同场景和需求。
但无论采用哪种触摸屏驱动技术,其基本原理都是通过检测电容、电阻、声波或红外线的变化来确定触摸点位置。
嵌入式系统触摸屏设计(需要仔细品读)

嵌入式系统触摸屏设计(需要仔细品读)触摸屏工作原理与结构触摸屏附着在显示器的表面,根据触摸点在显示屏上对应坐标点的显示内容或图形符号,进行相应的操作。
触摸屏按其工作原理可分为矢量压力传感式、电阻式、电容式、红外线式和表面声波式5类。
在嵌入式系统中常用的是电阻式触摸屏。
电阻触摸屏结构如图5.6.1(c)所示,最上层是一层外表面经过硬化处理、光滑防刮的塑料层,内表面也涂有一层导电层(ITO或镍金);基层采用一层玻璃或薄膜,内表面涂有叫作ITO的透明导电层;在两层导电层之间有许多细小(小于千分之一英寸)的透明隔离点把它们隔开绝缘。
在每个工作面的两条边线上各涂一条银胶,称为该工作面的一对电极,一端加5V电压,一端加0V,在工作面的一个方向上形成均匀连续的平行电压分布。
当给X方向的电极对施加一确定的电压,而Y方向电极对不加电压时,在x平行电压场中,触点处的电压值可以在Y+(或Y—)电极上反映出来,通过测量Y+电极对地的电压大小,通过A/D转换,便可得知触点的X坐标值。
同理,当给Y 电极对施加电压,而X电极对不加电压时,通过测量X+电极的电压,通过A/D转换便可得知触点的Y坐标。
当手指或笔触摸屏幕时(如图5.6.1(c)所示),两个相互绝缘的导电层在触摸点处接触,因其中一面导电层(顶层)接通X轴方向的5V均匀电压场(如图5.6.1(a)所示),使得检测层(底层)的电压由零变为非零,控制器检测到这个接通后,进行A/D转换,并将得到的电压值与5V相比,即可得触摸点的X轴坐标为(原点在靠近接地点的那端):同理也可以得出Y轴的坐标。
电阻式触摸屏有四线式和五线式两种。
四线式触摸屏的X工作面和Y工作面分别加在两个导电层上,共有4根引出线:X+、X-,Y +、Y-分别连到触摸屏的X电极对和Y电极对上。
四线电阻屏触摸寿命小于100万次。
五线式触摸屏是四线式触摸屏的改进型。
五线式触摸屏把X工作面和Y工作面都加在玻璃基层的导电涂层上,工作时采用分时加电,即让两个方向的电压场分时工作在同一工作面上,而外导电层则仅仅用来充当导体和电压测量电极。
基于I 2C的嵌入式多点触摸屏幕驱动设计

电 容 触 摸 屏 。本 文 通 过 对 以 C p e s7 5 y r s 9 8为 代 表 的 IC 总线 接 口电 容 式 多 点 触 摸 屏 的研 究 , 计 了 针 对 L n x操 设 iu 作 系 统 的多 点 触 摸 的 屏 幕 驱 动 , 以及 不运 行 操 作 系 统 前 提 下 的单 片机 对 触 摸 屏 的驱 动 , 得 了 良好 的 效 果 。 取
Key wor ds:m ulit uc c e n;¥3C6 o ;I C s;e be e nux;c p ct c ou h s r n t o hs re — 41 x bu m dd d Li a a ian e t c c ee
电体 内形 成 一 个 低 电压 交 流 电场 。 在触 摸 屏 幕 时 , 由于 人
造 成影 响 , 算 屏 幕 沾 有 污 秽 、 埃 或 油 渍 , 就 尘 电容 式 触 摸 屏 依 然 能 准 确 算 出触 摸 位 置 。 与 电 阻 触 摸 屏 相 对 比 , 电容 式
触 摸 屏 就 是 支 持 多 点 触 摸 的人 机 交 互 方 式 , 通 电阻 式 触 普 摸 屏 只 能 进 行 单 一 点 的触 控 。
Embe de u t.o c r n Dr er Bas d on 1C d d M lit u h Sc ee i v e 2
S O,Zh uJ a u hiYa o i l
( olg f e iinI sr me tAn t— lcrnc gn eig,Tini ie st ,Tin i 0 0 2 C l eo cso n tu n dOp o E e to isEn ie r e Pr n a j Unv riy n a jn3 0 7 ,Chn ) ia
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
嵌入式系统中的电容触摸屏驱动开发0引言在当今高端智能手机中,多点触摸已经成为标配,实现多点触摸屏功能的正是由电容式触摸屏,而电阻式触摸屏智能实现单点触摸功能。
高端M1D平板电脑以及其他多媒体嵌人式设备中,支持多点触摸的电容式触摸屏也有应用。
.虽然现阶段电容式触摸屏的价格较贵,在中低端产品中,还是以电阻式触摸屏为主,但随着电容式触摸屏价格的下降,技术门槛的降低,以及能带给用户更为丰富的体验.电容式触摸屏的应用必将越来越广泛。
MX51是飞思卡尔半导体的基于ARM CORTEX A8内核的高端ARM嵌入式多媒体处理器,Linunx是一个功能强大的嵌入式操作系统.它可以移植在各种不同体系结构的处理器上。
本文以Linux2. b.31内核和M JCS1为系统的软、硬件平台,讨论了电容式触摸屏驱动的开发方法及实现技术。
1电容式触摸屏概述电容式触摸屏利用人体的电流感应进行工作。
它是一块四层复合玻璃屏,玻璃屏的内表面和夹层各涂有一层ITo.最外层是一薄层矽土玻瑞保护层,夹层ITo 涂层作为工作面,四个角上弓{出四个电极,内层ITO为屏蔽层以保证良好的工作环境。
当手指触摸在金属层上时,由于人体电场,用户和触摸屏表面形成一个韧合电容,对于高频电流来说,电容是直接导体,于是手指从接触点吸走一个很小的电流二这个电流从触摸屏四个角上的电极中流出,并且流经这四个电极的电流与手指到四角的距离成正比,触摸屏控制器通过对这四个电流比例的精确计算,得出触摸点的位置。
与电阻式触摸屏相比,电容式触摸屏表现出了更加良好的性能。
由于轻触就能感应,使用十分方便;而且手指与触摸屏的接触几乎没有磨损,使用寿命长。
2触摸屏驱动工作原理本设计采用的方案是MX51外接瑞士PIXCIR公司的AT-mega168芯片,ATmega168是电容式触摸屏控制芯片。
通过I^2C接口和MX51处理器相连,硬件连接示意图如图1所示。
I^C接口只需要SCL时钟和SDA数据两根信号线,另外,当有手指点击电容触摸屏时,ATmega168采样到坐标值后,会产生一个中断信号(ATTb)通知MX51,AT'I、连到MX51的一个GPIO中断管脚上。
ATmega168的采样速度非常快,IZC总线的速度高达400KHz,支持7位寻址,中断模式可通过hC写操作设置为低电平中断,只有在finger mwving即手指移动时才产生中断,手指第一次点击触摸屏时有中断产生,之后,如果手指位置没有变化,不再有新的中断产生,只有在手指移动(有位置变化)时,AT-megal68才产生新的中断。
这种中断模式有利于驱动程序的处理。
3触摸屏驱动程序设计I^2C总线是一种由PHILIPS公司开发的两线式串行总线,用于连接控制器及外围设备。
MX51提供了I^2C接口,并通过此接口与ATMega1b8芯片进行数据通信。
3.1I^2C设备注册ATmega168是一个IZ G设备,使用前需向Linux内核注册。
在arch/arm/mach-mx51 /mx51_babbage.c中,首先定义如下的全局结构变量:其中type为定义的I^2C设备名称,addr为12C设备地址,irq为I2C设备产生的中断号。
然后,调用如下函数注册此设备:系统初始化时,会根据板级I2C设备配置信息,创建I2C客户端设备i2c_client,并将其添加到I2C子系统中。
3.2I2C设备驱动注册对于ATmega168这样的I2C设备,需用两个结构structt i2c_driver和struct i2c_client来描述。
其中i2c_driver表示一个I2C设备驱动,i2c_client用于描述一个I2C设备。
我们在drivers/video/mxc/mxc_pixcir_ts.c中作如下定义:在驱动人口函数mx51_pixcir_init中调用create_inglethread_warkqueue("pixcir_wq")函数创建一个工作队列pixcir_wq,调用i2c_add_driver(&pixcir_i2c_ta_driver)函数注册一个总线驱动。
驱动加载成功后,系统会自动调用探测函数pixcir_i2c_ts_probe,该函数原型如下:参数i2c client*client表示此前已向系统注册过的I2C设备,即ATmega168芯片。
3.3Linux输入子系统Linux内核提供了输人子系统,键盘、触摸屏、鼠标等钧人设备都可以利用输人子系统的接口函数来实现设备驱动。
输人子系统由核心层、驱动层和事件处理层三部分组成,它们之间通过事件进行通信。
L,rnux2.6.31内核增加了对电容式触摸屏多点触摸的支持,通过输入子系统实现触摸屏驱动,具体需要完成以下工作:(1)事件设置。
设备驱动通过set_bit()告诉输入子系统它支持哪些事件。
(2)电容触摸屏参数设置。
可用函数:void input_set_abs_params(struct input_dev*dev, int axis',int min,ini max,intfuzz,int flat);进行设置。
(3)注册输入设备。
注册函数为:int input_register},device(struct input一ev*dev)。
(d)当有输人事件发生,如触摸屏被触摸/抬起/移动时,通过imput_report abs()函数报告发生的事件及对应的坐标值等。
3.4主要功能函数Linux中的触摸屏驱动,可以作为一种普通的字符设备,也可以纳人输人子系统框架。
本设计通过输人子系统实现触摸屏驱动。
首先定义设备结构:其中结构input dev定义在<Linux/input.h>中,用于描述输人设备的驱动结构,主要包括响应的事件类型、按键内容、数据相对值的范围及一些处理函数。
利用输人子系统实现触摸屏驱动,要做的主要工作在以下函数中完成。
3.4.1pixcir_i2c_ts probe函数在入口函数mx51_pixeir_init中成功加载IZC设备驱动后,系统自动调用pixcir_i2c ts_probe函数。
该函数主要实现以下操作:(1)定义结构指针(3)设置参数/*设置MuEd Touch坐标范围,根据LCD分辨率为1024x768设}X 坐标的范围是0一1024,Y坐标的范围是0一768*/input_set_abs_perams(input,ABS_MT_POSITIOH_X,0,1024,0,0)input_set_abs_perams(input,ABS_MT_POSITIOH_Y,0,768,0,0)//设置接触点主轴长度范围input_set_abs_perams(input,ABS_MT_MAJOR,0,255,0,0)(4)构建工作队列中的一个任务。
任务由WOTk_STRUCT结构描述,由于是在程序的运行期间构造WOrk_STRUCT结构,因此使用宏:INIT WORK(&tsdata->work.work,pixcir_ts_poscheck);其中tsdata->work.work为所构建的任务名称,pixcir_ts_poseheck为函数名,表示执行该任务时从工作队列中调用的函数。
(5)调用函数input_register_device(input),注册输人设备驱动input.(6)调用函数request_irq,申请触摸屏中断:request irq(tsdata->irq,pixcir_ts_isr,IRQF_'TRIGGER_FALLING,client->name,tsdata))其中tsdata->irq为硬件中断号,pixcir_ts_isr为系统注册的中断处理子程序,中断申请成功返回0,失败时返回负值。
3.4.2中断处理函数中断处理函数原型为:static irqreturn_t pixcir_ts_isr(int irq,void*dev_id);当按下触摸屏时,根据电容式触摸屏工作原理,接触点的电流流经触摸屏的四个电极,触摸屏控制器ATmegal68芯片通过对这四个电流比例的精确计算,得出触摸点的位置,将X,Y坐标存储在寄存器中;与此同时,产生一个GPIO中断给MX51,MX51收到中断后调用中断处理函数pixcir_ts_isr。
该函数主要是向工作队列提交一个任务,这通过调用queue_work (pixcir_wq,&tsdata->work.work)实现。
参数tsdata->work.work是前面在pixcir_i2c_ts_probe函数中已构建的任务,queue_work函数负责将该任务提交到给定的工作队列pixcir_wq,然后开始执行队列中的pixcir_ts_poscheck函数。
3.4.3数据处理函数点击触摸屏后得到的触点位置,由pixcir ts_poscheck函数读取。
电容式触摸屏提供多点触摸功能,与触点位置相关的数据保存在表1所示ATmega168芯片的寄存器中。
该函数主要做两件事:一是读取ATmega168芯片寄存器中的采样数据;二是向系统报告发生的事件及对应的坐标值。
首先定义包含to个元素的数组变量Rdbuf,用于存放读取的数据,调用函数i2c_master_recv(tsdata->client,Rdbnf,sizeof(Rd-buf),由于X,Y坐标值分别存放在两个寄存器中,需用下面的代码对坐标值进行处理:然后,依据变量touching的值确定触点个数,报告点击事件与相关数据。
4触摸屏驱动的校准和测试电容触摸屏由于对周围环境非常敏感,因此,需要经常进行校准,特别是在触摸屏安装完成后,要进行校准。
如果此后,电容触摸屏的使用环境没有变化,则不需要重新校准。
在产品生产过程中,实际只在生产线上产品组装完成后的测试工序里需要进行校准。
电容触摸屏的校准,驱动需要提供一个校准函数,校准函数的内容如下:只需要往ATmega168的0x37寄存器里写0x03这个值,执行校准的时候,手指或其他杂物不能接触触摸屏,触摸屏周围保持一个整洁的环境。
ATmega168内部有一个ARM7处理器,在收到校准指令后,ATmega168会立即对电容触摸屏进行采样,采样的时机极短,10毫秒以内就能完成采样,采样完成之后AT-mega168还要把电极系统的电容偏差值保存下来,ATmema168通过刷新自己内部的EEPROM来保存校准时的新的偏差值。
EEPROM的刷新时间小于秒钟,程序中,为保险起见,我们采用mdelay(2000)延时2秒钟。
校准过程中,系统不能断电,如果不幸断电,则需要重新校准。