diff --git a/libraries/AP_Winch/AP_Winch_Daiwa.cpp b/libraries/AP_Winch/AP_Winch_Daiwa.cpp index ab810c997d..d660d15e38 100644 --- a/libraries/AP_Winch/AP_Winch_Daiwa.cpp +++ b/libraries/AP_Winch/AP_Winch_Daiwa.cpp @@ -214,7 +214,7 @@ void AP_Winch_Daiwa::control_winch() const float rate_limited = get_rate_limited_by_accel(config.rate_desired, dt); // use linear interpolation to calculate output to move winch at desired rate - int16_t scaled_output = 0; + float scaled_output = 0; if (!is_zero(rate_limited)) { scaled_output = linear_interpolate(output_dz, 1000, fabsf(rate_limited), 0, config.rate_max) * (is_positive(rate_limited) ? 1.0f : -1.0f); } diff --git a/libraries/AP_Winch/AP_Winch_PWM.cpp b/libraries/AP_Winch/AP_Winch_PWM.cpp index 0263a7b851..f778255926 100644 --- a/libraries/AP_Winch/AP_Winch_PWM.cpp +++ b/libraries/AP_Winch/AP_Winch_PWM.cpp @@ -58,7 +58,7 @@ void AP_Winch_PWM::control_winch() const float rate_limited = get_rate_limited_by_accel(config.rate_desired, dt); // use linear interpolation to calculate output to move winch at desired rate - const int16_t scaled_output = linear_interpolate(-1000, 1000, rate_limited, -config.rate_max, config.rate_max); + const float scaled_output = linear_interpolate(-1000, 1000, rate_limited, -config.rate_max, config.rate_max); SRV_Channels::set_output_scaled(SRV_Channel::k_winch, scaled_output); // update distance estimate assuming winch will move exactly as requested