embeddedlibrary
reusable software modules for embedded systems
pid_floating.h
1 
16 #ifndef PID_H
17 #define PID_H
18 
19 #include <stdint.h>
20 #include <stdbool.h>
21 
36 typedef struct pid_controller_t {
37  // Setpoint
38  float setpoint;
39  // PID Coefficients
40  float kp; // Proportional
41  float ki; // Integral
42  float kd; // Derivitive
43  // Error
44  float prev_error; // Used in Derivitive Calc
45  float prev_i;
46  float max_i;
47  // Integral/Derivitive dt calculation
48  tint_t prev_time;
50 
51 
61 void PID_Reset(pid_controller_t *pid_handle);
62 
71 float PID_Step(pid_controller_t *pid_handle, float meas);
72 
73 #endif
74 
#define tint_t
Definition: timing.h:26
Definition: pid.h:36
struct pid_controller_t pid_controller_t
void PID_Reset(pid_controller_t *pid_handle)
Definition: pid.c:3
float PID_Step(pid_controller_t *pid_handle, float meas)
Definition: pid_floating.c:9