[ZLG-ARM] ARM嵌入式系统实验教程(三)触摸屏实验

[复制链接]
 楼主| rpqhy 发表于 2007-1-21 21:38 | 显示全部楼层 |阅读模式
周老师,我想问的代码如下:<br />void&nbsp;&nbsp;GetLCD_XY(uint16&nbsp;*vx,&nbsp;uint16&nbsp;*vy)<br />{&nbsp;&nbsp;&nbsp;uint16&nbsp;&nbsp;vx_dat,&nbsp;vy_dat;<br />&nbsp;&nbsp;&nbsp;&nbsp;uint16&nbsp;&nbsp;vx_dat1,&nbsp;vy_dat1;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;while(1)<br />&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;//&nbsp;判断是否有触摸动作(通过ADS7843的PENIRQ引脚进行判断)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(1)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;vy_dat&nbsp;=&nbsp;ADS7843_WriteRead(AIN_Y);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(vy_dat&nbsp;!=&nbsp;0)&nbsp;break;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;进行数据采集<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vx_dat&nbsp;=&nbsp;ADS7843_WriteRead(AIN_X);&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vy_dat&nbsp;=&nbsp;ADS7843_WriteRead(AIN_Y);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vx_dat1&nbsp;=&nbsp;ADS7843_WriteRead(AIN_X);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vy_dat1&nbsp;=&nbsp;ADS7843_WriteRead(AIN_Y);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if((vy_dat&lt3)&nbsp;||&nbsp;(vy_dat1&lt3))&nbsp;continue;<br />///问题1、上面这一句是还是进行六次数据采集的条件判断语句啊?<br />///我不明白的是:vy_dat不是坐标值吗,怎么变成次数了??<br /><br />///师兄叫我看ADS7843_WriteRead里面写什么,我看不大懂。只知道里面<br />///只返回了ret_dat值。应该就是坐标值吧....<br />///问题2、顺便问问,初学者用不用看到驱动里到底写什么?什么时候看最合适?<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(vx_dat&gtvx_dat1)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if((vx_dat-vx_dat1)&nbsp;&gt&nbsp;32)&nbsp;continue;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />///问题3、32怎么得到的?是多次实验得出的,还是大概的。。。。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if((vx_dat1-vx_dat)&nbsp;&gt&nbsp;32)&nbsp;continue;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(vy_dat&gtvy_dat1)&nbsp;///<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if((vy_dat-vy_dat1)&nbsp;&gt&nbsp;64)&nbsp;continue;&nbsp;&nbsp;&nbsp;&nbsp;<br />///问题4、假如是大概,那64呢?<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if((vy_dat1-vy_dat)&nbsp;&gt&nbsp;64)&nbsp;continue;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*vx&nbsp;=&nbsp;(vx_dat+vx_dat1)&nbsp;&gt&gt&nbsp;1<br />///此处是不是指右移一位相当于除以10(即十进制的2)???<br />///即得到用户点的坐标的平均值<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*vy&nbsp;=&nbsp;(vy_dat+vy_dat1)&nbsp;&gt&gt&nbsp;1;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />}<br />各位看官要是知道的话也请回答一下菜鸟的问题,浪费你们宝贵时间了,麻烦了~~!有些问题我也不敢乱确定,就多问了几句!
lymbgd 发表于 2007-1-21 21:57 | 显示全部楼层

我的理解

ARM嵌入式系统实验教程(三)触摸屏实验&nbsp;<br /><br />周老师,我想问的代码如下:<br />void&nbsp;&nbsp;GetLCD_XY(uint16&nbsp;*vx,&nbsp;uint16&nbsp;*vy)<br />{&nbsp;&nbsp;&nbsp;uint16&nbsp;&nbsp;vx_dat,&nbsp;vy_dat;<br />&nbsp;&nbsp;&nbsp;&nbsp;uint16&nbsp;&nbsp;vx_dat1,&nbsp;vy_dat1;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;while(1)<br />&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;//&nbsp;判断是否有触摸动作(通过ADS7843的PENIRQ引脚进行判断)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(1)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;vy_dat&nbsp;=&nbsp;ADS7843_WriteRead(AIN_Y);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(vy_dat&nbsp;!=&nbsp;0)&nbsp;break;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;进行数据采集<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vx_dat&nbsp;=&nbsp;ADS7843_WriteRead(AIN_X);&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vy_dat&nbsp;=&nbsp;ADS7843_WriteRead(AIN_Y);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vx_dat1&nbsp;=&nbsp;ADS7843_WriteRead(AIN_X);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vy_dat1&nbsp;=&nbsp;ADS7843_WriteRead(AIN_Y);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if((vy_dat&lt3)&nbsp;||&nbsp;(vy_dat1&lt3))&nbsp;continue;<br />///问题1、上面这一句是还是进行六次数据采集的条件判断语句啊?<br />///我不明白的是:vy_dat不是坐标值吗,怎么变成次数了??<br /><br />回答:2次采集,如果y坐标值小于3......<br /><br />///师兄叫我看ADS7843_WriteRead里面写什么,我看不大懂。只知道里面<br />///只返回了ret_dat值。应该就是坐标值吧....<br />///问题2、顺便问问,初学者用不用看到驱动里到底写什么?什么时候看最合适?<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(vx_dat&gtvx_dat1)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if((vx_dat-vx_dat1)&nbsp;&gt&nbsp;32)&nbsp;continue;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />///问题3、32怎么得到的?是多次实验得出的,还是大概的。。。。<br />回答:应该是大概吧<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if((vx_dat1-vx_dat)&nbsp;&gt&nbsp;32)&nbsp;continue;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(vy_dat&gtvy_dat1)&nbsp;///<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if((vy_dat-vy_dat1)&nbsp;&gt&nbsp;64)&nbsp;continue;&nbsp;&nbsp;&nbsp;&nbsp;<br />///问题4、假如是大概,那64呢?<br />回答:因为屏尺寸是240*320的<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if((vy_dat1-vy_dat)&nbsp;&gt&nbsp;64)&nbsp;continue;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*vx&nbsp;=&nbsp;(vx_dat+vx_dat1)&nbsp;&gt&gt&nbsp;1<br />///此处是不是指右移一位相当于除以10(即十进制的2)???<br />///即得到用户点的坐标的平均值<br />回答:是的<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*vy&nbsp;=&nbsp;(vy_dat+vy_dat1)&nbsp;&gt&gt&nbsp;1;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />}<br />&nbsp;<br />&nbsp;<br />
 楼主| rpqhy 发表于 2007-1-23 17:33 | 显示全部楼层

楼上的朋友回答得和我想的一样哦

只不过那个实验指导书上是写六次数据采集的,看来周公最近几天过年放假了。。。。只有过年后来顶顶了!<br /><br /><br />虽然回答得很大概,呵呵。不过还是感谢楼上那位朋友!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

12

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部