Basic library to interface a 2 channel quadrature encoder with mBed
QuadratureEncoder.cpp@2:fcb3790af96b, 2017-07-24 (annotated)
- Committer:
- el15lm
- Date:
- Mon Jul 24 14:07:04 2017 +0000
- Revision:
- 2:fcb3790af96b
- Parent:
- 1:42d1e211e624
added doxygen documentation;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
el15lm | 0:8e8c33a797a9 | 1 | #include "QuadratureEncoder.h" |
el15lm | 0:8e8c33a797a9 | 2 | |
el15lm | 0:8e8c33a797a9 | 3 | QuadratureEncoder::QuadratureEncoder(PinName pinA, PinName pinB): _channelA(pinA), _channelB(pinB) |
el15lm | 0:8e8c33a797a9 | 4 | { |
el15lm | 0:8e8c33a797a9 | 5 | _ticks = 0; |
el15lm | 0:8e8c33a797a9 | 6 | _channelB.rise(this, &QuadratureEncoder::_Brising); |
el15lm | 0:8e8c33a797a9 | 7 | _channelB.fall(this, &QuadratureEncoder::_Bfalling); |
el15lm | 0:8e8c33a797a9 | 8 | } |
el15lm | 0:8e8c33a797a9 | 9 | |
el15lm | 0:8e8c33a797a9 | 10 | int QuadratureEncoder::getTicks() |
el15lm | 0:8e8c33a797a9 | 11 | { |
el15lm | 0:8e8c33a797a9 | 12 | return _ticks; |
el15lm | 0:8e8c33a797a9 | 13 | } |
el15lm | 0:8e8c33a797a9 | 14 | |
el15lm | 1:42d1e211e624 | 15 | void QuadratureEncoder::reset() |
el15lm | 1:42d1e211e624 | 16 | { |
el15lm | 1:42d1e211e624 | 17 | _ticks = 0; |
el15lm | 1:42d1e211e624 | 18 | } |
el15lm | 1:42d1e211e624 | 19 | |
el15lm | 0:8e8c33a797a9 | 20 | void QuadratureEncoder::_Brising() |
el15lm | 0:8e8c33a797a9 | 21 | { |
el15lm | 0:8e8c33a797a9 | 22 | if (_channelA.read()) { |
el15lm | 0:8e8c33a797a9 | 23 | _ticks--; |
el15lm | 0:8e8c33a797a9 | 24 | } else { |
el15lm | 0:8e8c33a797a9 | 25 | _ticks++; |
el15lm | 0:8e8c33a797a9 | 26 | } |
el15lm | 0:8e8c33a797a9 | 27 | } |
el15lm | 0:8e8c33a797a9 | 28 | |
el15lm | 0:8e8c33a797a9 | 29 | void QuadratureEncoder::_Bfalling() |
el15lm | 0:8e8c33a797a9 | 30 | { |
el15lm | 0:8e8c33a797a9 | 31 | if (_channelA.read()) { |
el15lm | 0:8e8c33a797a9 | 32 | _ticks++; |
el15lm | 0:8e8c33a797a9 | 33 | } else { |
el15lm | 0:8e8c33a797a9 | 34 | _ticks--; |
el15lm | 0:8e8c33a797a9 | 35 | } |
el15lm | 0:8e8c33a797a9 | 36 | } |