diff --git a/drivers/pid/pid.cpp b/drivers/pid/pid.cpp index 0d8cdb4f2..8ccb47bf8 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 ef6039419..0aa84c685 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;