Basic library to interface a 2 channel quadrature encoder with mBed
Embed:
(wiki syntax)
Show/hide line numbers
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 }
Generated on Thu Jul 21 2022 15:47:21 by
1.7.2