robot

Dependencies:   FastPWM3 mbed

Committer:
bwang
Date:
Sun May 07 17:43:41 2017 +0000
Revision:
159:9dbc0657238c
Parent:
121:de10418bf2c2
Child:
219:1cfd651eb2b2
05/07/2017 13:42 - bugfix in constrain_norm(), which previously stepped from max to 1 magnitude when limiting kicked in

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