智能车制作
标题:
ATD采集 数据处理 高手帮忙……
[打印本页]
作者:
高敏真人真话
时间:
2013-2-6 12:31
标题:
ATD采集 数据处理 高手帮忙……
大神帮忙啊,电磁,两个传感器,0,1通道循环采样,采样五个个值之后求平均值,但是XS128的AD为什么无论是平均值还是,结果寄存器里的值都是抖动的,是否正常?若不正常怎样处理? 0通道采样左边传感器的信号,1通道采样右边传感器的信号,传感器靠近赛道中心时数据会变大,但抖动非常厉害……
value()
{
uint tempa0,tempa1,ad0[5],ad1[5];
int tempa2;
ATD0STAT0_SCF=0;
while(!ATD0STAT2_CCF0);
ad0[0]=ATD0DR0;
while(!ATD0STAT2_CCF1);
ad1[0]=ATD0DR1;
while(!ATD0STAT0_SCF);
ATD0STAT0_SCF=0;
while(!ATD0STAT2_CCF0);
ad0[1]=ATD0DR0;
while(!ATD0STAT2_CCF1);
ad1[1]=ATD0DR1;
while(!ATD0STAT0_SCF);
ATD0STAT0_SCF=0;
while(!ATD0STAT2_CCF0);
ad0[2]=ATD0DR0;
while(!ATD0STAT2_CCF1);
ad1[2]=ATD0DR1;
while(!ATD0STAT0_SCF);
ATD0STAT0_SCF=0;
while(!ATD0STAT2_CCF0);
ad0[3]=ATD0DR0;
while(!ATD0STAT2_CCF1);
ad1[3]=ATD0DR1;
while(!ATD0STAT0_SCF);
ATD0STAT0_SCF=0;
while(!ATD0STAT2_CCF0);
ad0[4]=ATD0DR0;
while(!ATD0STAT2_CCF1);
ad1[4]=ATD0DR1;
ATD0STAT0_SCF=1;
tempa0=(ad0[0]+ad0[1]+ad0[2]+ad0[3]+ad0[4])/5;
tempa1=(ad1[0]+ad1[1]+ad1[2]+ad1[3]+ad1[4])/5;
tempa2=tempa0-tempa1;
return tempa2;
}
通过判断value()的正负,确定小车是左拐还是右拐……
作者:
夜初晓
时间:
2013-2-14 17:23
循环采样,车子一直在开,这个有误差不?
作者:
kakado
时间:
2013-2-20 16:35
我的也是......你用检波电路没有?我直接采样,但是数据抖动的异常汹涌.....
作者:
追梦悍马
时间:
2013-5-1 11:19
滤波了没?
作者:
高敏真人真话
时间:
2013-6-2 09:34
谢谢各位网友了 其实设置是合适的 硬件电路有问题 电路有问题 我都哭了……
欢迎光临 智能车制作 (http://dns.znczz.com/)
Powered by Discuz! X3.2