金牌会员
- 积分
- 1767
- 威望
- 1298
- 贡献
- 351
- 兑换币
- 161
- 注册时间
- 2012-11-21
- 在线时间
- 59 小时
|
10贡献
大神帮忙啊,电磁,两个传感器,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()的正负,确定小车是左拐还是右拐……
|
|