Ahmed Allibhoy / Mbed 2 deprecated MM_Competition

Dependencies:   QEI mbed

Revision:
1:45f1f67eab62
Child:
4:d59328f14363
diff -r 5b681ac34259 -r 45f1f67eab62 pid.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pid.h	Wed Dec 02 16:47:26 2015 +0000
@@ -0,0 +1,36 @@
+#ifndef PID_H
+#define PID_H
+
+#include "mbed.h"
+
+class PIDController
+{
+public:
+    PIDController(void (*output)(float), float (*error)(void), 
+        float Kp, float Ki, float Kd, 
+        float dt = .1) :
+        m_Kp(Kp), m_Ki(Ki), m_Kd(Kd), 
+        m_dt(dt), m_integral(0), m_pError(0)
+    {
+        m_out = output;
+        m_error = error;
+    };
+    
+    void onLoop();  
+    void reset();  
+private:
+    float iController(float error);
+    float dController(float error);
+
+    float m_integral;
+    float m_pError;
+    
+    float m_dt;
+
+    float m_Kp, m_Ki, m_Kd;
+    void (*m_out)(float);
+    float (*m_error)(void);
+};
+
+
+#endif //PID_H
\ No newline at end of file