智能车制作

标题: 急! AD在线调试发现数据波动特别大 [打印本页]

作者: 海浩    时间: 2009-1-22 23:22
标题: 急! AD在线调试发现数据波动特别大
<><FONT face=楷体_GB2312 size=3>我把AD初始化好了,现在可以发射并且能接收到信号了。</FONT></P><P><FONT face=楷体_GB2312 size=3>可在线调试的时候 ,</FONT></P><P><FONT face=楷体_GB2312 size=3>当对着黑线时,转换结果是255,</FONT></P><P><FONT face=楷体_GB2312 size=3>但是对着白板时</FONT></P><P><FONT face=楷体_GB2312 size=3>从0到255的数据好像都跳过,反正就是不稳定</FONT></P><P><FONT face=楷体_GB2312 size=3>请问各位是什么原因?我已经被困了很有几天了!!</FONT></P><P>void AD_INT(void) <BR>{ <BR>&nbsp; ATD0CTL2=0xC0;&nbsp;&nbsp;&nbsp; // 启动A/D转换,快速清零,无等待模式,禁止外部触发,中断禁止<BR>&nbsp; ATD0CTL3=0x08;&nbsp;&nbsp;//转换序列长度为1&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp; ATD0CTL4=0xE3;&nbsp;&nbsp;&nbsp; //8位精度,PRS设为3,ATD时钟=(总线时钟/2)/(PRS+1)<BR>&nbsp;ATD0DIEN=0x00;&nbsp;&nbsp;&nbsp; //禁止数字输入<BR>&nbsp; ATD0CTL5=0xA0;&nbsp;&nbsp;&nbsp; //右对齐无符号,单通道采样,通道0<BR>&nbsp; PORTB=0xff;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //输出清零<BR>&nbsp;}</P><P>for(;;)<BR>&nbsp;{<BR>&nbsp;&nbsp;&nbsp; while(!ATD0STAT1_CCF0);&nbsp; //等待转换完成</P><P>&nbsp;&nbsp;&nbsp;&nbsp; ch<i>=ATD0DR0L;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //取值<BR>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;i=(i+1)%50;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PORTB=ch<i>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //显示<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(j=0;j&lt;60000;j++);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; j=0;</P><P>&nbsp; }</P><P>}</P>
作者: 南工学子    时间: 2009-1-23 05:00
标题: Re:急! AD在线调试发现数据波动特别大
首先一点你for语句中的括号的个数就不对应少了一个"{"
作者: Michael_Fei    时间: 2009-1-23 05:07
标题: Re:急! AD在线调试发现数据波动特别大
<>白色不绝对就是0的,它在红外接收管的眼里其实也是有暗的,应该这个值在一个范围一下,你设定一个阀值,判断黑白就可以</P>
作者: 海浩    时间: 2009-1-24 18:32
标题: Re:急! AD在线调试发现数据波动特别大
<>哦,这个括号是复制上去的,main的括号</P><P>还是谢谢你提出的问题</P>
作者: 海浩    时间: 2009-1-24 18:37
标题: Re:急! AD在线调试发现数据波动特别大
主要是在没有改变黑线的位置的时候,这个转化数据还是波动范围很大,在完全接受不到反射光的时候其值是255
作者: dinosaur1114    时间: 2009-2-20 01:52
你们应该是没接AD的基准电压,所以只有0和255的变化。
作者: haohaohun    时间: 2009-2-20 19:56
有可能是数据发生溢出




欢迎光临 智能车制作 (http://111.231.132.190/) Powered by Discuz! X3.2