34 #include "generated/airframe.h"
36 #if APOGEE_USE_MPU9150
43 #if !defined IMU_GYRO_P_SIGN & !defined IMU_GYRO_Q_SIGN & !defined IMU_GYRO_R_SIGN
44 #define IMU_GYRO_P_SIGN 1
45 #define IMU_GYRO_Q_SIGN 1
46 #define IMU_GYRO_R_SIGN 1
48 #if !defined IMU_ACCEL_X_SIGN & !defined IMU_ACCEL_Y_SIGN & !defined IMU_ACCEL_Z_SIGN
49 #define IMU_ACCEL_X_SIGN 1
50 #define IMU_ACCEL_Y_SIGN 1
51 #define IMU_ACCEL_Z_SIGN 1
54 #ifndef APOGEE_GYRO_RANGE
55 #define APOGEE_GYRO_RANGE MPU60X0_GYRO_RANGE_1000
57 #ifndef APOGEE_ACCEL_RANGE
58 #define APOGEE_ACCEL_RANGE MPU60X0_ACCEL_RANGE_8G
62 #if !defined IMU_GYRO_P_SENS & !defined IMU_GYRO_Q_SENS & !defined IMU_GYRO_R_SENS
63 #define IMU_GYRO_P_SENS MPU60X0_GYRO_SENS[APOGEE_GYRO_RANGE]
64 #define IMU_GYRO_P_SENS_NUM MPU60X0_GYRO_SENS_FRAC[APOGEE_GYRO_RANGE][0]
65 #define IMU_GYRO_P_SENS_DEN MPU60X0_GYRO_SENS_FRAC[APOGEE_GYRO_RANGE][1]
66 #define IMU_GYRO_Q_SENS MPU60X0_GYRO_SENS[APOGEE_GYRO_RANGE]
67 #define IMU_GYRO_Q_SENS_NUM MPU60X0_GYRO_SENS_FRAC[APOGEE_GYRO_RANGE][0]
68 #define IMU_GYRO_Q_SENS_DEN MPU60X0_GYRO_SENS_FRAC[APOGEE_GYRO_RANGE][1]
69 #define IMU_GYRO_R_SENS MPU60X0_GYRO_SENS[APOGEE_GYRO_RANGE]
70 #define IMU_GYRO_R_SENS_NUM MPU60X0_GYRO_SENS_FRAC[APOGEE_GYRO_RANGE][0]
71 #define IMU_GYRO_R_SENS_DEN MPU60X0_GYRO_SENS_FRAC[APOGEE_GYRO_RANGE][1]
73 #if !defined IMU_GYRO_P_NEUTRAL & !defined IMU_GYRO_Q_NEUTRAL & !defined IMU_GYRO_R_NEUTRAL
74 #define IMU_GYRO_P_NEUTRAL 0
75 #define IMU_GYRO_Q_NEUTRAL 0
76 #define IMU_GYRO_R_NEUTRAL 0
81 #if !defined IMU_ACCEL_X_SENS & !defined IMU_ACCEL_Y_SENS & !defined IMU_ACCEL_Z_SENS
82 #define IMU_ACCEL_X_SENS MPU60X0_ACCEL_SENS[APOGEE_ACCEL_RANGE]
83 #define IMU_ACCEL_X_SENS_NUM MPU60X0_ACCEL_SENS_FRAC[APOGEE_ACCEL_RANGE][0]
84 #define IMU_ACCEL_X_SENS_DEN MPU60X0_ACCEL_SENS_FRAC[APOGEE_ACCEL_RANGE][1]
85 #define IMU_ACCEL_Y_SENS MPU60X0_ACCEL_SENS[APOGEE_ACCEL_RANGE]
86 #define IMU_ACCEL_Y_SENS_NUM MPU60X0_ACCEL_SENS_FRAC[APOGEE_ACCEL_RANGE][0]
87 #define IMU_ACCEL_Y_SENS_DEN MPU60X0_ACCEL_SENS_FRAC[APOGEE_ACCEL_RANGE][1]
88 #define IMU_ACCEL_Z_SENS MPU60X0_ACCEL_SENS[APOGEE_ACCEL_RANGE]
89 #define IMU_ACCEL_Z_SENS_NUM MPU60X0_ACCEL_SENS_FRAC[APOGEE_ACCEL_RANGE][0]
90 #define IMU_ACCEL_Z_SENS_DEN MPU60X0_ACCEL_SENS_FRAC[APOGEE_ACCEL_RANGE][1]
92 #if !defined IMU_ACCEL_X_NEUTRAL & !defined IMU_ACCEL_Y_NEUTRAL & !defined IMU_ACCEL_Z_NEUTRAL
93 #define IMU_ACCEL_X_NEUTRAL 0
94 #define IMU_ACCEL_Y_NEUTRAL 0
95 #define IMU_ACCEL_Z_NEUTRAL 0
100 #if APOGEE_USE_MPU9150
112 #endif // IMU_APOGEE_H
void imu_apogee_downlink_raw(void)
void imu_apogee_periodic(void)
void imu_apogee_event(void)
Inertial Measurement Unit interface.
Driver for the MPU-60X0 using I2C.
Driver for the AKM AK8975 magnetometer.
void imu_apogee_init(void)
struct ImuApogee imu_apogee