soodi1100
جمعه 10 آبان 1392, 10:48 صبح
سلام
من میخواهم از تابع زیر 3 خروجی pitch و yaw و roll که در پایان هر پاراگراف ساخته میشه رو به صورت جدا از هم در 3 متغیر داشته باشم
ممنون میشوم کمکم کنید
void IMU_Poll(IMU_DATA *data)
{
static float pitch_n , pitch,pitch_w;
static float yaw_n , yaw,yaw_w;
static float roll_n , roll,roll_w;
static MPU6050Data MPU_Data;
pitch_n=(acos((float)MPU_Data.Accel_Z/sqrt(MPU_Data.Accel_X*MPU_Data.Accel_X+MPU_Data.Ac cel_Z*MPU_Data.Accel_Z))-1.58925 )*57.297469;// Accelerator degree
pitch_w=( ((float)(MPU_Data.Gyro_Y)) / 131.07 ); // angular speed calculation
pitch=0.98*(pitch+pitch_w*0.01)+0.02*pitch_n ; // complementry filter
data->pitch=pitch;
roll_n=(acos((float)MPU_Data.Accel_Y/sqrt(MPU_Data.Accel_Y*MPU_Data.Accel_Y+MPU_Data.Ac cel_Z*MPU_Data.Accel_Z))-1.58925 )*57.297469;// Accelerator degree
roll_w=( ((float)(MPU_Data.Gyro_X)) / 131.07 ); // angular speed calculation
roll=0.98*(pitch+roll_w*0.01)+0.02*roll_n ; // complementry filter
data->roll=roll;
yaw_n=(acos((float)MPU_Data.Accel_X/sqrt(MPU_Data.Accel_X*MPU_Data.Accel_X+MPU_Data.Ac cel_Y*MPU_Data.Accel_Y))-1.58925 )*57.297469;// Accelerator degree
yaw_w=( ((float)(MPU_Data.Gyro_Z)) / 131.07 ); // angular speed calculation
yaw=0.98*(yaw+yaw_w*0.01)+0.02*yaw_n ; // complementry filter
data->yaw=yaw;
}
من میخواهم از تابع زیر 3 خروجی pitch و yaw و roll که در پایان هر پاراگراف ساخته میشه رو به صورت جدا از هم در 3 متغیر داشته باشم
ممنون میشوم کمکم کنید
void IMU_Poll(IMU_DATA *data)
{
static float pitch_n , pitch,pitch_w;
static float yaw_n , yaw,yaw_w;
static float roll_n , roll,roll_w;
static MPU6050Data MPU_Data;
pitch_n=(acos((float)MPU_Data.Accel_Z/sqrt(MPU_Data.Accel_X*MPU_Data.Accel_X+MPU_Data.Ac cel_Z*MPU_Data.Accel_Z))-1.58925 )*57.297469;// Accelerator degree
pitch_w=( ((float)(MPU_Data.Gyro_Y)) / 131.07 ); // angular speed calculation
pitch=0.98*(pitch+pitch_w*0.01)+0.02*pitch_n ; // complementry filter
data->pitch=pitch;
roll_n=(acos((float)MPU_Data.Accel_Y/sqrt(MPU_Data.Accel_Y*MPU_Data.Accel_Y+MPU_Data.Ac cel_Z*MPU_Data.Accel_Z))-1.58925 )*57.297469;// Accelerator degree
roll_w=( ((float)(MPU_Data.Gyro_X)) / 131.07 ); // angular speed calculation
roll=0.98*(pitch+roll_w*0.01)+0.02*roll_n ; // complementry filter
data->roll=roll;
yaw_n=(acos((float)MPU_Data.Accel_X/sqrt(MPU_Data.Accel_X*MPU_Data.Accel_X+MPU_Data.Ac cel_Y*MPU_Data.Accel_Y))-1.58925 )*57.297469;// Accelerator degree
yaw_w=( ((float)(MPU_Data.Gyro_Z)) / 131.07 ); // angular speed calculation
yaw=0.98*(yaw+yaw_w*0.01)+0.02*yaw_n ; // complementry filter
data->yaw=yaw;
}