Basic library to interface a 2 channel quadrature encoder with mBed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers QuadratureEncoder.cpp Source File

QuadratureEncoder.cpp

00001 #include "QuadratureEncoder.h"
00002 
00003 QuadratureEncoder::QuadratureEncoder(PinName pinA, PinName pinB): _channelA(pinA), _channelB(pinB)
00004 {
00005     _ticks = 0;
00006     _channelB.rise(this, &QuadratureEncoder::_Brising);
00007     _channelB.fall(this, &QuadratureEncoder::_Bfalling);
00008 }
00009 
00010 int QuadratureEncoder::getTicks()
00011 {
00012     return _ticks;
00013 }
00014 
00015 void QuadratureEncoder::reset()
00016 {
00017     _ticks = 0;
00018 }
00019 
00020 void QuadratureEncoder::_Brising()
00021 {
00022     if (_channelA.read()) {
00023         _ticks--;
00024     } else {
00025         _ticks++;
00026     }
00027 }
00028 
00029 void QuadratureEncoder::_Bfalling()
00030 {
00031     if (_channelA.read()) {
00032         _ticks++;
00033     } else {
00034         _ticks--;
00035     }
00036 }