void MPU6050_getStructData(pSixAxis cache) { cache->gX = (float)MPU_GetData(GYRO_XOUT_H)/16.4f; cache->gY = (float)MPU_GetData(GYRO_YOUT_H)/16.4f; cache->gZ = (float)MPU_GetData(GYRO_ZOUT_H)/16.4f; cache->aX = (float)MPU_GetData(ACCEL_XOUT_H)/1671.83f; cache->aY = (float)MPU_GetData(ACCEL_YOUT_H)/1671.83f; cache->aZ = (float)MPU_GetData(ACCEL_ZOUT_H)/1671.83f; cache->aY += A_Y_OFFSET; cache->gX += G_X_OFFSET; }
void MPU6050_getStructData(pSixAxis cache) { cache->gX = (float)MPU_GetData(GYRO_XOUT_H)/16.4f; cache->gY = (float)MPU_GetData(GYRO_YOUT_H)/16.4f; cache->gZ = (float)MPU_GetData(GYRO_ZOUT_H)/16.4f; cache->aX = (float)MPU_GetData(ACCEL_XOUT_H)/1671.83f; cache->aY = (float)MPU_GetData(ACCEL_YOUT_H)/1671.83f; cache->aZ = (float)MPU_GetData(ACCEL_ZOUT_H)/1671.83f; #ifdef IMU_SOFTWARE_FIXED cache->gX += G_X_OFFSET; cache->gY += G_Y_OFFSET; cache->gZ += G_Z_OFFSET; cache->aX += A_X_OFFSET; cache->aY += A_Y_OFFSET; cache->aZ += A_Z_OFFSET; #endif }
//pBuf为3个元素保存X,Y,Z轴角速度数据 void MPU_GetGyroADC(int16_xyz *gyro) { gyro->x = MPU_GetData(GYRO_XOUT_H)-MPU_OFFSET_GYROX; gyro->y = MPU_GetData(GYRO_YOUT_H)-MPU_OFFSET_GYROY; gyro->z = MPU_GetData(GYRO_ZOUT_H)-MPU_OFFSET_GYROZ; }
//pBuf为3个元素保存X,Y,Z轴加速度数据 void MPU_GetAccelADC(int16_xyz *acc) { acc->x = MPU_GetData(ACCEL_XOUT_H) -MPU_OFFSET_ACCELX; acc->y = MPU_GetData(ACCEL_YOUT_H) - MPU_OFFSET_ACCELY; acc->z = MPU_GetData(ACCEL_ZOUT_H) - MPU_OFFSET_ACCELZ; }