智能车制作

标题: 请问一下为什么用示波器输出陀螺仪和加速度计的采样值是这样的,红色是加速度计 [打印本页]

作者: 是我    时间: 2015-4-15 19:59
标题: 请问一下为什么用示波器输出陀螺仪和加速度计的采样值是这样的,红色是加速度计
请问一下为什么用示波器输出陀螺仪和加速度计的采样值是这样的,红色是加速度计
作者: 是我    时间: 2015-4-15 20:00
有没有好心人解答一下
作者: 是我    时间: 2015-4-15 20:24
float OutData[4] = { 0 };

unsigned short CRC_CHECK(unsigned char *Buf, unsigned char CRC_CNT)
{
    unsigned short CRC_Temp;
    unsigned char i,j;
    CRC_Temp = 0xffff;

    for (i=0;i<CRC_CNT; i++){      
        CRC_Temp ^= Buf[i];
        for (j=0;j<8;j++) {
            if (CRC_Temp & 0x01)
                CRC_Temp = (CRC_Temp >>1 ) ^ 0xa001;
            else
                CRC_Temp = CRC_Temp >> 1;
        }
    }
    return(CRC_Temp);
}

void OutPut_Data(void)
{
  int temp[4] = {0};
  unsigned int temp1[4] = {0};
  unsigned char databuf[10] = {0};
  unsigned char i;
  unsigned short CRC16 = 0;
  for(i=0;i<4;i++)
   {
   
    temp[i]  = (int)OutData[i];
    temp1[i] = (unsigned int)temp[i];
   
   }
   
  for(i=0;i<4;i++)
  {
    databuf[i*2]   = (unsigned char)(temp1[i]%256);
    databuf[i*2+1] = (unsigned char)(temp1[i]/256);
  }
  
  CRC16 = CRC_CHECK(databuf,8);
  databuf[8] = CRC16%256;
  databuf[9] = CRC16/256;
  
  for(i=0;i<10;i++)
   SCI_TX(databuf[i]);
}
       void  send_data()
{
       angle_velocity();
      OutData[0] = Angle_z  ;
       OutData[1] =  Gyro_y;   
       OutData[2] = 0;//g_fGyroscopeAngleSpeed;
       OutData[3] = 0;//VOLTAGE_GRAVITY_Z;      
       OutPut_Data();   
  }



这是程序
作者: 空心杯    时间: 2015-4-15 22:25
换个试试,我曾经就是硬件坏了
作者: wy941016    时间: 2015-4-16 01:40
有加滤波吗?
作者: HTQ    时间: 2015-4-17 10:30
我也遇到这个问题,有没有大神解答一下,感谢




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