diff --git a/src/modules/rc_update/rc_update.cpp b/src/modules/rc_update/rc_update.cpp index 5246cd03f64..365f3b9321f 100644 --- a/src/modules/rc_update/rc_update.cpp +++ b/src/modules/rc_update/rc_update.cpp @@ -215,8 +215,12 @@ void RCUpdate::parameters_updated() const uint16_t throttle_min = _parameters.min[throttle_channel]; const uint16_t throttle_trim = _parameters.trim[throttle_channel]; const uint16_t throttle_max = _parameters.max[throttle_channel]; + const bool throttle_rev = _parameters.rev[throttle_channel]; - if (throttle_min == throttle_trim) { + const bool normal_case = !throttle_rev && (throttle_trim == throttle_min); + const bool reversed_case = throttle_rev && (throttle_trim == throttle_max); + + if (normal_case || reversed_case) { const uint16_t new_throttle_trim = (throttle_min + throttle_max) / 2; _parameters.trim[throttle_channel] = new_throttle_trim; }