ly66 发表于 2018-3-5 14:37:18

1MPU6050如何获取三个轴角速度的原始数据呢 ?2dmp中断是在哪里开启设置的?

1.读dmp时,原始数据存在gyro和accel这两个数组里,怎么转换成原始数据啊,他们对应的关系是什么void Read_DMP(void)
{      
          unsigned long sensor_timestamp;
                unsigned char more;
                long quat;

                              dmp_read_fifo(gyro, accel, quat, &sensor_timestamp, &sensors, &more);               
                              if (sensors & INV_WXYZ_QUAT )
                              {   
                                       q0=quat / q30;
                                       q1=quat / q30;
                                       q2=quat / q30;
                                       q3=quat / q30;
                                       Pitch = asin(-2 * q1 * q3 + 2 * q0* q2)* 57.3;         
                                       Roll = atan2(2 * q2 * q3 + 2 * q0 * q1, -2 * q1 * q1 - 2 * q2* q2 + 1)* 57.3; // roll               
                                       Yaw =         atan2(2*(q1*q2 + q0*q3),q0*q0+q1*q1-q2*q2-q3*q3) * 57.3;
                              }
}



2dmp中断是在哪里开启设置的?
在dmp初始化函数里我没看到开启中断的语句啊,是默认开启的吗
void DMP_Init(void)
{
   u8 temp={0};
   i2cRead(0x68,0x75,1,temp);
       printf("mpu_set_sensor complete ......\r\n");
        if(temp!=0x68)NVIC_SystemReset();
        if(!mpu_init())
{
           mpu_set_sensors(INV_XYZ_GYRO | INV_XYZ_ACCEL);
          
           mpu_configure_fifo(INV_XYZ_GYRO | INV_XYZ_ACCEL);
                 
           mpu_set_sample_rate(DEFAULT_MPU_HZ);
                 
           dmp_load_motion_driver_firmware();
                 
           dmp_set_orientation(inv_orientation_matrix_to_scalar(gyro_orientation));
                 
           dmp_enable_feature(DMP_FEATURE_6X_LP_QUAT | DMP_FEATURE_TAP |
                DMP_FEATURE_ANDROID_ORIENT | DMP_FEATURE_SEND_RAW_ACCEL | DMP_FEATURE_SEND_CAL_GYRO |
                DMP_FEATURE_GYRO_CAL);
                 
           dmp_set_fifo_rate(DEFAULT_MPU_HZ);
                 
          run_self_test();
           mpu_set_dmp_state(1);
                 
}
}

admin 发表于 2018-3-7 21:12:02

我们提供的程序默认开启的,在初始化DMP的过程开启了。数组里面的数据就是MPU6050的原始数据。
页: [1]
查看完整版本: 1MPU6050如何获取三个轴角速度的原始数据呢 ?2dmp中断是在哪里开启设置的?