智能车制作

标题: 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://111.231.132.190/) Powered by Discuz! X3.2