uint8_t mpu_configure_fifo(uint8_t sensors) { uint8_t prev; uint8_t result = 0; /* Compass data isn't going into the FIFO. Stop trying. */ sensors &= ~MPU_XYZ_COMPASS; if (mpu9250_st.dmp_on){ return 0; } else { if (!(mpu9250_st.sensors)) return -1; prev = mpu9250_st.fifo_enable; mpu9250_st.fifo_enable = sensors & mpu9250_st.sensors; if (mpu9250_st.fifo_enable != sensors) /* You're not getting what you asked for. Some sensors are * asleep. */ result = -1; else result = 0; if (sensors || mpu9250_st.lp_accel_mode) set_int_enable(1); else set_int_enable(0); if (sensors) { if (mpu_reset_fifo()) { mpu9250_st.fifo_enable = prev; return -1; } } } return result; }
inv_error_t MPU9250_DMP::enableInterrupt(unsigned char enable) { return set_int_enable(enable); }