版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、ARMARM实验实验AD转换以及触摸屏实验AD转换:又称为模数转换,是将模拟信号转换为计算机能够处理的数字信号。s3c2440集成了8通道10位CMOS A/D转换器。 ADCCONADCCON第15位:用于标识A/D转换是否结束。第14位:用于使能是否进行预分频。13-6:则存储的是预分频数值,因为A/D转换的速度不能太快,所以要通过预分频处理才可以得到正确的A/D转换速度,如我们想要得到A/D转换频率为1MHz,则预分频的值应为49。5-3:表示的是A/D转换的通道选择。第2位:可以实现A/D转换的待机模式。第1位:用于是否通过读取操作来使能A/D转换的开始。第0位:则是在第1位被清零的情
2、况下用于开启A/D转换。 1. A/D 1. A/D 转换的数据可以通过中断或查询方式访问。转换的数据可以通过中断或查询方式访问。中断方式的总体转换时间为从中断方式的总体转换时间为从A/D A/D 转换器开始转换器开始到转换数据的读取,可能由于中断服务程序的到转换数据的读取,可能由于中断服务程序的返回时间和数据访问时间而延迟。查询方式是返回时间和数据访问时间而延迟。查询方式是通过检查转换结束标志位的通过检查转换结束标志位的ADCCON15ADCCON15,可,可以确以确 定读取定读取ADCDAT ADCDAT 寄存器的时间。寄存器的时间。2. 2. 还提供了其它启动还提供了其它启动A/D A/
3、D 转换的方法。在转换的转换的方法。在转换的读启动模式读启动模式ADCCON1ADCCON1设置为设置为1 1 后,后,A/D A/D 转转换启动同时读取数据。换启动同时读取数据。寄存器ADCDAT0的低10位用于存储A/D转换后的数据。寄存器ADCCON的第15位用于标识A/D转换是否结束。 int readADC(void) rADCCON = (114)|(496); /设置预分频器和 rADCCON &= ( (73) | ( 12) ); / A/D通道0, 正常模式 rADCCON|=0 x1; /启动A/D转换 while(rADCCON & 0 x1) ; /确认A/D转换是否
4、开始 while(!(rADCCON & 0 x8000) ; /等待A/D转换的结束return ( (int)rADCDAT0 & 0 x3ff ); /读取A/D转换的数据练习:用中断的方式,来进行AD转换,旋转滑动变阻器,在超级终端上显示数字。触摸屏接口MINI2440MINI2440原理图原理图触摸屏接口模式触摸屏接口模式触摸屏有四种接口模式:触摸屏有四种接口模式:(1)普通转换模式与通用与通用ADAD转换的使用方式很相似。通过设置转换的使用方式很相似。通过设置ADCCONADCCON来初始化,并来初始化,并以一个读和写以一个读和写ADCDAT0ADCDAT0的操作完成。的操作完成。
5、(2)X/Y位置分别转换模式又可以分成两种模式:又可以分成两种模式:X X位置转换模式和位置转换模式和Y Y位置转换模式。这两种模位置转换模式。这两种模式下,触摸屏分别把式下,触摸屏分别把X X、Y Y位置转换数据写入到位置转换数据写入到ADCDAT0ADCDAT0和和ADCDAT1ADCDAT1中之后,向中断控制器发起中断请求。中之后,向中断控制器发起中断请求。(3)自动(顺序)X/Y位置转换模式触摸屏控制器依次转换触摸屏控制器依次转换X X和和Y Y位置,把转换结果分别写入到位置,把转换结果分别写入到ADCDAT0ADCDAT0和和ADCDAT1ADCDAT1中,然后向中断控制器发起中断请
6、求。中,然后向中断控制器发起中断请求。(4)等待中断模式设置设置ADCTSCADCTSC为为0 xD30 xD3,当触摸笔按下时,控制器发起中断请求。,当触摸笔按下时,控制器发起中断请求。中断类型中断类型最终向处理器发起的中断请求类型是总中断INT_ADC,它分为两种子中断类型,1. INT_SUB_ADC表示AD采样完成(触摸屏X、Y位置采样完成);2. INT_SUB_TC表示触摸屏中断,即笔在屏幕上按下或者离开屏幕。触摸屏实验触摸屏实验思考:要实现X、Y位置判断,当然是用自动采样模式最好;而要判断触摸笔的按下与离开,则应使用等待中断模式。问题是怎么把二者结合起来? 方法:采用等待中断模式
7、来判断笔的按下与离开;另外设置一个采样定时器,每隔一定时间(10ms)对X、Y位置进行采样。 注意问题:(1 1)只有在笔按下状态时才进行位置采样,笔不在屏幕)只有在笔按下状态时才进行位置采样,笔不在屏幕上时,采样是没有意义的。上时,采样是没有意义的。(2 2)位置采样采用轮询模式实现,即等待采样完成;采)位置采样采用轮询模式实现,即等待采样完成;采样完成后要恢复样完成后要恢复ADCTSCADCTSC,重置为等待中断模式。,重置为等待中断模式。(3 3)在普通转换模式,分别采样模式和自动采样模式下,)在普通转换模式,分别采样模式和自动采样模式下,ADCDAT0ADCDAT0的最高位无效,不能用
8、它来判断笔的状态。的最高位无效,不能用它来判断笔的状态。只有在触摸屏中断(只有在触摸屏中断(INT_SUB_TC)INT_SUB_TC)中才可以用中才可以用ADCDAT0ADCDAT0来判断触摸笔状态。来判断触摸笔状态。(4 4)位置采样完成后要屏蔽)位置采样完成后要屏蔽BIT_SUB_ADCBIT_SUB_ADC。否则,。否则,ADCADC持续进行采样,会以很高的频率(因为采样频率持续进行采样,会以很高的频率(因为采样频率很高)发起很高)发起INT_SUB_ADCINT_SUB_ADC中断请求,最终向处理器发中断请求,最终向处理器发起起INT_ADCINT_ADC请求,这会严重影响处理器的工
9、作。这也请求,这会严重影响处理器的工作。这也是不采用自动采样,而要用定时器定时采样的原因。是不采用自动采样,而要用定时器定时采样的原因。typedef structvolatile int btn_state; /笔的状态volatile int x_pos;/ x 坐标volatile int y_pos;/ y 坐标volatile int int_count;/ 转换的次数volatile int start_flag;/ 开始标志MOUSE_STATE;static MOUSE_STATE g_mouse_state;初始化:初始化:rADCDLY = 50000;/延时寄存器rADC
10、CON = (1 14) + (49 6);rADCTSC = 0 xD3;pISR_ADC = (unsigned int)TouchPanelIsr;rINTMSK &= (BIT_ADC);rINTSUBMSK &= (BIT_SUB_TC);rINTSUBMSK |= BIT_SUB_ADC;ADCTSC= 0ADCTSC= 011010011当有笔按下或抬起static void _irq TC_interupt(void)/ . 中断清0if (0 = g_mouse_state.btn_state)/如果中断前状态为抬起g_mouse_state.btn_state = 1;/标
11、志按下状态g_mouse_state.start_flag = 1;/标志开始状态.打印状态和坐标rADCTSC = 0 x1D3;/设置为抬起中断else /如果中断前状态为按下g_mouse_state.btn_state = 0;/标志抬起状态.打印状态rADCTSC = 0 xD3; /设置为按下中断定时器中断定时器中断定时器中断每隔10ms中断一次,进入中断处理函数,先判断笔有没有在屏上,如果没有就直接返回,如果有就转换X,Y坐标。void _irq Timer (void)if (0 = g_mouse_state.start_flag) return;if (0 = g_mous
12、e_state.btn_state) return;rINTSUBMSK &= (BIT_SUB_ADC);/允许AD中断rADCTSC = 0 x0C;/自动x,y转换模式rADCCON = (1 14) + (49 6) ;/设置频率rADCCON |= 0 x01;/开始转换while(rADCCON & 0 x01);/ADAD转换开始且该位在开始后清零转换开始且该位在开始后清零while(!(rADCCON & 0 x8000);/等待AD转换结束while(!(rSUBSRCPND & (110);/等待产生中断rINTSUBMSK |= BIT_SUB_ADC;/关AD中断g_m
13、ouse_state.x_pos = (rADCDAT0 & 0 x3FF);g_mouse_state.y_pos = (rADCDAT1 & 0 x3FF);g_mouse__count+;/取x,y的值,并且记数器+1rSUBSRCPND = BIT_SUB_ADC;/中断清0 UART0_printf(“x=%3d,y=%3dn”,g_mouse_state.x_pos,g_mouse_state.y_pos);/打印坐标练习:把整个程序写完,然后在MINI2440上运行,并能够看到效果,并指出有什么问题? if (0 = (rSUBSRCPND & BIT_SUB_
14、TC) rSRCPND |= BIT_ADC; rINTPND |= BIT_ADC; if (0 = g_mouse_state.btn_state) rADCTSC = 0 xD3; else rADCTSC = 0 x1D3; 思考: 这段代码有何作用?设LCD上每个点PD的坐标为XD,YD,触摸屏上每个点PT的坐标为XT,YT。要实现触摸屏上的坐标转换为LCD上的坐标,需要下列公式进行转换:XDAXTBYTCYDDXTEYTF因为其中一共有六个参数(A,B,C,D,E,F),因此只需要三个取样点就可以求得这六个参数。这六个参数一旦确定下来,只要给出任意触摸屏上的坐标点PT,代入这个公式,就可以得到它所对应的LCD上像素点的坐标PD。具体的求解过程就不细讲,只给出最终的结果。已知LCD上的三个取样点为:PD0,PD1,PD2,它们所对应的触摸屏上的三个点为:PT0,PT1,PT2。A,B,C,D,E,F这六个参数最终的结果都是一个分式,而且都有一个共同的分母,为: K(XT0XT2)(YT1YT2)(XT1XT2)(YT0YT2)那么这六个参数分别为: A(XD0XD2)(YT1YT2)(XD1XD2)(YT0YT2)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护理手语沟通
- 异地安全生产管理讲解
- 五一消防安全检查报告
- 安全统计通报报告讲解
- 干呕症状解析与应对
- 医院安全生产日历讲解
- 机械制造技术 第3版 试题试卷 A- 2020机械制造基础试卷A
- 人工智能的赞歌
- 施工会计及基础 5
- 证券公司分支机构设立管理细则
- 2026江苏联环药业集团有限公司招聘3人笔试参考题库及答案详解
- 2026年陕西高考物理考试题目及答案
- 2026中学教资信息处理常用技巧课件
- 2026中国医学科学院病原生物学研究所社会招聘33人笔试备考题库及答案解析
- 2026安全生产月全员安全生产责任制专题培训
- 新能源公司电池生产SOP文件
- 2026年洪涝灾害卫生防疫知识竞赛试题
- 2025年浙江公务员考试《行测》真题参考答案及解析
- 2026年二级注册计量师(计量法律法规及综合知识)考试试题及答案
- 2026年科研伦理与学术规范期末考试题库含完整答案详解(网校专用)
- 2026年互联网新闻信息服务许可与从业人员教育培训管理试题
评论
0/150
提交评论