diff --git a/src/mpu6000.c b/src/mpu6000.c index 0ec3f4b..55b4837 100644 --- a/src/mpu6000.c +++ b/src/mpu6000.c @@ -68,8 +68,10 @@ void mpu6000_calibrate(void) { sum_gy += raw.gy; sum_gz += raw.gz; HAL_Delay(1); - /* Refresh IWDG every 40ms — safe during re-cal with watchdog running */ - if (i % 40 == 39) safety_refresh(); + /* Refresh IWDG every 40ms, starting immediately (i=0) — the gap between + * safety_refresh() at the top of the main loop and entry here can be + * ~10ms, so we must refresh on i=0 to avoid the 50ms IWDG window. */ + if (i % 40 == 0) safety_refresh(); } s_bias_gx = (float)sum_gx / GYRO_CAL_SAMPLES;