Bayley Wang
/
foc-ed_in_the_bot_compact
robot
PositionSensor/PositionSensor.h@92:a9dac72d8cac, 2017-04-06 (annotated)
- 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?
User | Revision | Line number | New 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 |