diff options
Diffstat (limited to 'src/PID.h')
-rw-r--r-- | src/PID.h | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/PID.h b/src/PID.h new file mode 100644 index 0000000..649a113 --- /dev/null +++ b/src/PID.h @@ -0,0 +1,41 @@ +#include "gameCommon.h" + +#ifndef PID_H +#define PID_H + +// Hehehehe! PID CONTROLLER INDEED! + +typedef struct PIDConfig { + float kP; + float kI; + float kD; + + bool doClamp; + float min; + float max; +} PIDConfig; + +typedef struct PID { + float p; + float i; + float d; + + float kP; + float kI; + float kD; + + bool doClamp; + float min; + float max; + + float error; + float pastError; + + float output; +} PID; + +PID createPID(PIDConfig config); +float runPID(float setpoint, float processValue, PID * pid); +void resetPID(PID * pid); + +#endif |