diff --git a/libraries/AP_InertialSensor/AP_InertialSensor.cpp b/libraries/AP_InertialSensor/AP_InertialSensor.cpp index 74859705ab..a68602a468 100644 --- a/libraries/AP_InertialSensor/AP_InertialSensor.cpp +++ b/libraries/AP_InertialSensor/AP_InertialSensor.cpp @@ -1077,17 +1077,21 @@ check_sample: // accel and gyro. This normally completes immediately. bool gyro_available = false; bool accel_available = false; - while (!gyro_available || !accel_available) { + while (true) { for (uint8_t i=0; i<_backend_count; i++) { _backends[i]->accumulate(); } + for (uint8_t i=0; idelay_microseconds(100); + + if (gyro_available && accel_available) { + break; } + + hal.scheduler->delay_microseconds(100); } }