robot

Dependencies:   FastPWM3 mbed

PositionSensor/PositionSensor.h

Committer:
bwang
Date:
2017-05-04
Revision:
155:7c6005933d4c
Parent:
121:de10418bf2c2
Child:
219:1cfd651eb2b2

File content as of revision 155:7c6005933d4c:

#ifndef __POSITIONSENSOR_H
#define __POSITIONSENSOR_H

class PositionSensor {
public:
    virtual float GetMechPosition() {return 0.0f;}
    virtual float GetElecPosition() {return 0.0f;}
    virtual float GetUnlimitedElecPosition() {return 0.0f;}
    virtual bool IsValid() {return false;}
};
  
  
class PositionSensorEncoder: public PositionSensor {
public:
    PositionSensorEncoder(int cpr, float offset);
    virtual float GetMechPosition();
    virtual float GetElecPosition();
    virtual float GetUnlimitedElecPosition();
    virtual bool IsValid();
private:
    InterruptIn *ZPulse;
    DigitalIn *ZSense;
    void ZeroEncoderCount(void);
private:
    int _cpr;
    int _lobes;
    float _offset;
    
    bool _valid;
    float _rotations;
};

#endif