diff --git a/drivers/pid/pid.cpp b/drivers/pid/pid.cpp index 0d8cdb4f2a..8ccb47bf84 100644 --- a/drivers/pid/pid.cpp +++ b/drivers/pid/pid.cpp @@ -27,4 +27,12 @@ namespace pimoroni { return (error * kp) + (error_sum * ki) - (value_change * kd); } -} \ No newline at end of file + + float PID::get_error_sum() const { + return error_sum; + } + + void PID::reset_error_sum() { + error_sum = 0.0f; + } +} diff --git a/drivers/pid/pid.hpp b/drivers/pid/pid.hpp index ef60394199..0aa84c6859 100644 --- a/drivers/pid/pid.hpp +++ b/drivers/pid/pid.hpp @@ -14,6 +14,9 @@ namespace pimoroni { float calculate(float value); float calculate(float value, float value_change); + [[nodiscard]] float get_error_sum() const; + void reset_error_sum(); + public: float kp; float ki;