void imu_impl_init( void ) { ///////////////////////////////////////////////////////////////////// // MPU-60X0 mpu60x0_i2c_init(&imu_krooz.mpu, &(IMU_KROOZ_I2C_DEV), MPU60X0_ADDR); // change the default configuration imu_krooz.mpu.config.smplrt_div = KROOZ_SMPLRT_DIV; imu_krooz.mpu.config.dlpf_cfg = KROOZ_LOWPASS_FILTER; imu_krooz.mpu.config.gyro_range = KROOZ_GYRO_RANGE; imu_krooz.mpu.config.accel_range = KROOZ_ACCEL_RANGE; imu_krooz.mpu.config.drdy_int_enable = TRUE; hmc58xx_init(&imu_krooz.hmc, &(IMU_KROOZ_I2C_DEV), HMC58XX_ADDR); #if KROOZ_USE_MEDIAN_FILTER // Init median filters InitMedianFilterRatesInt(median_gyro); InitMedianFilterVect3Int(median_accel); InitMedianFilterVect3Int(median_mag); #endif RATES_ASSIGN(imu_krooz.rates_sum, 0, 0, 0); VECT3_ASSIGN(imu_krooz.accel_sum, 0, 0, 0); imu_krooz.meas_nb = 0; imu_krooz.gyr_valid = FALSE; imu_krooz.acc_valid = FALSE; imu_krooz.mag_valid = FALSE; imu_krooz_sd_arch_init(); }
void imu_impl_init(void) { ///////////////////////////////////////////////////////////////////// // ITG3200 itg3200_init(&imu_navgo.itg, &(IMU_NAVGO_I2C_DEV), ITG3200_ADDR_ALT); // change the default configuration imu_navgo.itg.config.smplrt_div = NAVGO_GYRO_SMPLRT_DIV; // 500Hz sample rate since internal is 1kHz imu_navgo.itg.config.dlpf_cfg = NAVGO_GYRO_LOWPASS; ///////////////////////////////////////////////////////////////////// // ADXL345 adxl345_i2c_init(&imu_navgo.adxl, &(IMU_NAVGO_I2C_DEV), ADXL345_ADDR_ALT); // change the default data rate imu_navgo.adxl.config.rate = NAVGO_ACCEL_RATE; ///////////////////////////////////////////////////////////////////// // HMC58XX hmc58xx_init(&imu_navgo.hmc, &(IMU_NAVGO_I2C_DEV), HMC58XX_ADDR); #if NAVGO_USE_MEDIAN_FILTER // Init median filters InitMedianFilterRatesInt(median_gyro); InitMedianFilterVect3Int(median_accel); InitMedianFilterVect3Int(median_mag); #endif imu_navgo.gyr_valid = FALSE; imu_navgo.acc_valid = FALSE; imu_navgo.mag_valid = FALSE; }