diff --git a/conf/airframes/PPZUAV/fixed-wing/ppzimu_tiny.xml b/conf/airframes/PPZUAV/fixed-wing/ppzimu_tiny.xml index 1b4a1040a06..06906f2ea41 100644 --- a/conf/airframes/PPZUAV/fixed-wing/ppzimu_tiny.xml +++ b/conf/airframes/PPZUAV/fixed-wing/ppzimu_tiny.xml @@ -202,7 +202,7 @@ --> - + + @@ -256,15 +256,5 @@ - - ap.srcs += $(SRC_SUBSYSTEMS)/imu.c - -ap.CFLAGS += -DAHRS_H_X=0.51562740288882 -DAHRS_H_Y=-0.05707735220832 -DAHRS_H_Z=0.85490967783446 -ap.CFLAGS += -DIMU_TYPE_H=\"modules/ins/ins_ppzuavimu.h\" - -# Test attitude using accelerometers only: -# ap.CFLAGS += -DOUTPUTMODE=2 -# ap.CFLAGS += -DASPIRIN_IMU - diff --git a/conf/airframes/TU_Delft/yapa_xsens.xml b/conf/airframes/TU_Delft/yapa_xsens.xml index 10abe2b9f11..f27b129aeb4 100644 --- a/conf/airframes/TU_Delft/yapa_xsens.xml +++ b/conf/airframes/TU_Delft/yapa_xsens.xml @@ -180,18 +180,18 @@ - - - + + + - + diff --git a/conf/autopilot/fixedwing.makefile b/conf/autopilot/fixedwing.makefile index 139a7ca919b..3b0758e8bf7 100644 --- a/conf/autopilot/fixedwing.makefile +++ b/conf/autopilot/fixedwing.makefile @@ -15,6 +15,7 @@ SRC_FIXEDWING_TEST=$(SRC_FIXEDWING)/ SRC_FIRMWARE=firmwares/fixedwing SRC_SUBSYSTEMS=subsystems +SRC_MODULES=modules FIXEDWING_INC = -I$(SRC_FIRMWARE) -I$(SRC_FIXEDWING) diff --git a/conf/autopilot/subsystems/shared/imu_ppzuav.makefile b/conf/autopilot/subsystems/shared/imu_ppzuav.makefile new file mode 100644 index 00000000000..6da0e416e42 --- /dev/null +++ b/conf/autopilot/subsystems/shared/imu_ppzuav.makefile @@ -0,0 +1,20 @@ + +IMU_PPZUAVIMU_CFLAGS = -DUSE_IMU +IMU_PPZUAVIMU_CFLAGS += -DIMU_TYPE_H=\"modules/ins/ins_ppzuavimu.h\" + +IMU_PPZUAVIMU_SRCS = $(SRC_SUBSYSTEMS)/imu.c \ + $(SRC_MODULES)/ins/ins_ppzuavimu.c + + +IMU_PPZUAVIMU_CFLAGS += -DUSE_I2C +ifdef STM32 + IMU_PPZUAVIMU_CFLAGS += -DUSE_I2C2 + IMU_PPZUAVIMU_CFLAGS += -DPPZUAVIMU_I2C_DEVICE=i2c2 +else + IMU_PPZUAVIMU_CFLAGS += -DUSE_I2C0 + IMU_PPZUAVIMU_CFLAGS += -DPPZUAVIMU_I2C_DEVICE=i2c0 +endif + +ap.CFLAGS += $(IMU_PPZUAVIMU_CFLAGS) +ap.srcs += $(IMU_PPZUAVIMU_SRCS) + diff --git a/conf/modules/ins_aspirin_via_i2c.xml b/conf/modules/ins_aspirin_via_i2c.xml new file mode 100644 index 00000000000..d5f93cd3273 --- /dev/null +++ b/conf/modules/ins_aspirin_via_i2c.xml @@ -0,0 +1,25 @@ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
diff --git a/conf/modules/ins_ppzuavimu.xml b/conf/modules/ins_ppzuavimu.xml index 9537dbe34db..a2544c204df 100644 --- a/conf/modules/ins_ppzuavimu.xml +++ b/conf/modules/ins_ppzuavimu.xml @@ -6,8 +6,12 @@ - - + + + + + + diff --git a/sw/airborne/modules/ins/ins_ppzuavimu.c b/sw/airborne/modules/ins/ins_ppzuavimu.c index ea3dc5e852c..be707312c80 100644 --- a/sw/airborne/modules/ins/ins_ppzuavimu.c +++ b/sw/airborne/modules/ins/ins_ppzuavimu.c @@ -19,7 +19,7 @@ */ #include -#include "estimator.h" +#include "ins_ppzuavimu.h" #include "mcu_periph/i2c.h" // Downlink @@ -53,7 +53,7 @@ struct i2c_transaction ppzuavimu_adxl345; struct Imu imu; #endif -void ppzuavimu_module_init( void ) +void imu_impl_init(void) { ///////////////////////////////////////////////////////////////////// // ITG3200 @@ -138,7 +138,7 @@ void ppzuavimu_module_init( void ) } -void ppzuavimu_module_periodic( void ) +void imu_periodic( void ) { // Start reading the latest gyroscope data ppzuavimu_itg3200.type = I2CTransTxRx; diff --git a/sw/airborne/modules/ins/ins_ppzuavimu.h b/sw/airborne/modules/ins/ins_ppzuavimu.h index 1da5a745d7b..8ffe325d299 100644 --- a/sw/airborne/modules/ins/ins_ppzuavimu.h +++ b/sw/airborne/modules/ins/ins_ppzuavimu.h @@ -28,14 +28,13 @@ extern volatile bool_t gyr_valid; extern volatile bool_t acc_valid; extern volatile bool_t mag_valid; - -extern void ppzuavimu_module_init( void ); -extern void ppzuavimu_module_periodic( void ); -extern void ppzuavimu_module_event( void ); -extern void ppzuavimu_module_downlink_raw( void ); - +/* must be defined in order to be IMU code: declared in imu.h +extern void imu_impl_init(void); +extern void imu_periodic(void); +*/ #define ImuEvent(_gyro_handler, _accel_handler, _mag_handler) { \ + ppzuavimu_module_event(); \ if (gyr_valid) { \ gyr_valid = FALSE; \ _gyro_handler(); \ @@ -50,5 +49,9 @@ extern void ppzuavimu_module_downlink_raw( void ); } \ } +/* Own Extra Functions */ +extern void ppzuavimu_module_event( void ); +extern void ppzuavimu_module_downlink_raw( void ); + #endif // PPZUAVIMU_H