robot

Dependencies:   FastPWM3 mbed

Committer:
bwang
Date:
Tue Apr 25 07:03:08 2017 +0000
Revision:
120:57b6f3b1356b
Parent:
119:ad7a6af6fba3
Child:
121:de10418bf2c2
transitioning to new velocity code

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bwang 15:b583cd30b063 1 #ifndef __POSITIONSENSOR_H
bwang 15:b583cd30b063 2 #define __POSITIONSENSOR_H
bwang 0:bac9c3a3a6ca 3
bwang 0:bac9c3a3a6ca 4 class PositionSensor {
bwang 0:bac9c3a3a6ca 5 public:
bwang 0:bac9c3a3a6ca 6 virtual float GetMechPosition() {return 0.0f;}
bwang 0:bac9c3a3a6ca 7 virtual float GetElecPosition() {return 0.0f;}
bwang 119:ad7a6af6fba3 8 virtual float GetUnlimitedElecPosition() {return 0.0f;}
bwang 120:57b6f3b1356b 9 virtual float GetUnlimitedMechPosition() {return 0.0f;}
bwang 28:ed9c1ca386fd 10 virtual bool IsValid() {return false;}
bwang 0:bac9c3a3a6ca 11 };
bwang 0:bac9c3a3a6ca 12
bwang 0:bac9c3a3a6ca 13
bwang 0:bac9c3a3a6ca 14 class PositionSensorEncoder: public PositionSensor {
bwang 0:bac9c3a3a6ca 15 public:
bwang 9:074575151e4b 16 PositionSensorEncoder(int cpr, float offset);
bwang 0:bac9c3a3a6ca 17 virtual float GetMechPosition();
bwang 0:bac9c3a3a6ca 18 virtual float GetElecPosition();
bwang 119:ad7a6af6fba3 19 virtual float GetUnlimitedElecPosition();
bwang 120:57b6f3b1356b 20 virtual float GetUnlimitedMechPosition();
bwang 28:ed9c1ca386fd 21 virtual bool IsValid();
bwang 0:bac9c3a3a6ca 22 private:
bwang 0:bac9c3a3a6ca 23 InterruptIn *ZPulse;
bwang 0:bac9c3a3a6ca 24 DigitalIn *ZSense;
bwang 0:bac9c3a3a6ca 25 void ZeroEncoderCount(void);
bwang 119:ad7a6af6fba3 26 private:
bwang 9:074575151e4b 27 int _cpr;
bwang 119:ad7a6af6fba3 28 int _lobes;
bwang 119:ad7a6af6fba3 29 float _offset;
bwang 119:ad7a6af6fba3 30
bwang 28:ed9c1ca386fd 31 bool _valid;
bwang 119:ad7a6af6fba3 32 float _rotations;
bwang 0:bac9c3a3a6ca 33 };
bwang 0:bac9c3a3a6ca 34
bwang 0:bac9c3a3a6ca 35 #endif