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