Ahmed Allibhoy / Mbed 2 deprecated MM_Competition

Dependencies:   QEI mbed

pid.h

Committer:
ahmedallibhoy
Date:
2015-12-02
Revision:
1:45f1f67eab62
Child:
4:d59328f14363

File content as of revision 1:45f1f67eab62:

#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