robot

Dependencies:   FastPWM3 mbed

Committer:
bwang
Date:
Thu Apr 06 17:33:47 2017 +0000
Revision:
92:a9dac72d8cac
Parent:
28:ed9c1ca386fd
Child:
119:ad7a6af6fba3
--PwmIn now checks lower bounds for sanity and fall without rise; --switched to edge aligned pwm to work around prius module propagation delays

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 28:ed9c1ca386fd 8 virtual bool IsValid() {return false;}
bwang 0:bac9c3a3a6ca 9 };
bwang 0:bac9c3a3a6ca 10
bwang 0:bac9c3a3a6ca 11
bwang 0:bac9c3a3a6ca 12 class PositionSensorEncoder: public PositionSensor {
bwang 0:bac9c3a3a6ca 13 public:
bwang 9:074575151e4b 14 PositionSensorEncoder(int cpr, float offset);
bwang 0:bac9c3a3a6ca 15 virtual float GetMechPosition();
bwang 0:bac9c3a3a6ca 16 virtual float GetElecPosition();
bwang 28:ed9c1ca386fd 17 virtual bool IsValid();
bwang 0:bac9c3a3a6ca 18 private:
bwang 0:bac9c3a3a6ca 19 InterruptIn *ZPulse;
bwang 0:bac9c3a3a6ca 20 DigitalIn *ZSense;
bwang 0:bac9c3a3a6ca 21 void ZeroEncoderCount(void);
bwang 9:074575151e4b 22 int _cpr;
bwang 28:ed9c1ca386fd 23 bool _valid;
bwang 0:bac9c3a3a6ca 24 float _offset;
bwang 0:bac9c3a3a6ca 25 };
bwang 0:bac9c3a3a6ca 26
bwang 0:bac9c3a3a6ca 27 #endif