diff --git a/libraries/AC_Autorotation/AC_Autorotation.cpp b/libraries/AC_Autorotation/AC_Autorotation.cpp index 3ff226e010c799..3539310f807e5f 100644 --- a/libraries/AC_Autorotation/AC_Autorotation.cpp +++ b/libraries/AC_Autorotation/AC_Autorotation.cpp @@ -723,15 +723,17 @@ void AC_Autorotation::update_est_radar_alt(void) } -void AC_Autorotation::calc_avg_acc_z(void) +void AC_Autorotation::update_avg_acc_z(void) { - if (_index < 10) { - _acc_z_sum -= _curr_acc_z[_index]; - _curr_acc_z[_index] = _ahrs.get_accel_ef().z; - _acc_z_sum += _curr_acc_z[_index]; - _index = _index + 1; - } else { + // Wrap index + if (_index >= 10) { _index = 0; } - _avg_acc_z = _acc_z_sum / 10.0f; + + _acc_z_sum -= _curr_acc_z[_index]; + _curr_acc_z[_index] = _ahrs.get_accel_ef().z; + _acc_z_sum += _curr_acc_z[_index]; + _index = _index + 1; + + _avg_acc_z = _acc_z_sum / 10.0; } diff --git a/libraries/AC_Autorotation/AC_Autorotation.h b/libraries/AC_Autorotation/AC_Autorotation.h index f08ecc985424e5..7c8e0c2e9e4df9 100644 --- a/libraries/AC_Autorotation/AC_Autorotation.h +++ b/libraries/AC_Autorotation/AC_Autorotation.h @@ -108,7 +108,7 @@ class AC_Autorotation void update_hover_autorotation_controller(); - void calc_avg_acc_z(void); + void update_avg_acc_z(void); float get_flare_alt(void) const { return _flare_alt_calc; }