Modified Motor Driver Firmware to include Flash + Thermal

Dependencies:   FastPWM3 mbed-dev-STM-lean

PositionSensor/PositionSensor.h

Committer:
benkatz
Date:
2017-03-02
Revision:
20:bf9ea5125d52
Parent:
14:80ce59119d93
Child:
22:60276ba87ac6

File content as of revision 20:bf9ea5125d52:

#ifndef POSITIONSENSOR_H
#define POSITIONSENSOR_H
class PositionSensor {
public:
    virtual float GetMechPosition() {return 0.0f;}
    virtual float GetElecPosition() {return 0.0f;}
    virtual float GetMechVelocity() {return 0.0f;}
    virtual float GetElecVelocity() {return 0.0f;}
};
  
  
class PositionSensorEncoder: public PositionSensor {
public:
    PositionSensorEncoder(int CPR, float offset, int ppairs);
    virtual float GetMechPosition();
    virtual float GetElecPosition();
    virtual float GetMechVelocity();
    virtual float GetElecVelocity();
private:
    InterruptIn *ZPulse;
    DigitalIn *ZSense;
    //DigitalOut *ZTest;
    virtual void ZeroEncoderCount(void);
    virtual void ZeroEncoderCountDown(void);
    int _CPR, flag, rotations, _ppairs;
    //int state;
    float _offset, MechPosition, dir, test_pos, vel_old, out_old;
};

class PositionSensorMA700: public PositionSensor{
public:
    PositionSensorMA700(int CPR, float offset, int ppairs);
    virtual float GetMechPosition();
    virtual float GetElecPosition();
    virtual float GetMechVelocity();
    virtual int GetRawPosition();
    virtual void ZeroPosition();
private:
    float _offset, MechPosition, MechOffset;
    int _CPR, rotations, old_counts, _ppairs;
    SPI *spi;
    DigitalOut *cs;
};

class PositionSensorAM5147: public PositionSensor{
public:
    PositionSensorAM5147(int CPR, float offset, int ppairs);
    virtual float GetMechPosition();
    virtual float GetElecPosition();
    virtual float GetMechVelocity();
    virtual int GetRawPosition();
    virtual void ZeroPosition();
private:
    float _offset, MechPosition, MechOffset;
    int _CPR, rotations, old_counts, _ppairs;
    SPI *spi;
    DigitalOut *cs;
    int readAngleCmd;

};

class PositionSensorSineGen: public PositionSensor{
public:
    PositionSensorSineGen(int CPR, float offset, int ppairs);
    virtual float GetMechPosition();
    virtual float GetElecPosition();
    virtual float GetMechVelocity();
    virtual int GetRawPosition();
    virtual void ZeroPosition();
private:
    float _offset, MechPosition, MechOffset;
    int _CPR, rotations, old_counts, _ppairs;
    int readAngleCmd;

};
#endif