Basic library to interface a 2 channel quadrature encoder with mBed

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?

UserRevisionLine numberNew 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 }