robot

Dependencies:   FastPWM3 mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers PositionSensor.h Source File

PositionSensor.h

00001 #ifndef __POSITIONSENSOR_H
00002 #define __POSITIONSENSOR_H
00003 
00004 class PositionSensor {
00005 public:
00006     virtual float GetMechPosition() {return 0.0f;}
00007     virtual float GetElecPosition() {return 0.0f;}
00008     virtual bool IsValid() {return false;}
00009 };
00010   
00011 class PositionSensorEncoder: public PositionSensor {
00012 public:
00013     PositionSensorEncoder(int cpr, float offset);
00014     virtual float GetMechPosition();
00015     virtual float GetElecPosition();
00016     virtual bool IsValid();
00017 private:
00018     InterruptIn *ZPulse;
00019     DigitalIn *ZSense;
00020     void ZeroEncoderCount(void);
00021     virtual float GetUnlimitedElecPosition();
00022 private:
00023     int _cpr;
00024     int _lobes;
00025     float _offset;
00026     
00027     bool _valid;
00028     float _rotations;
00029 };
00030 
00031 #endif