positive or negative pulse width counter
Diff: PulseWidthCounter.cpp
- Revision:
- 1:d37d6388c179
- Parent:
- 0:89bd4ad6027d
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/PulseWidthCounter.cpp Thu Jul 11 19:15:42 2013 +0000 @@ -0,0 +1,27 @@ +#include "mbed.h" +#include "InterruptIn.h" +#include "PulseWidthCounter.h" + +PulseWidthCounter::PulseWidthCounter(PinName _interrupt,bool positive=true) : interrupt(_interrupt) //constructa +{ + if ( positive ) + { interrupt.rise(this,&PulseWidthCounter::start); + interrupt.fall(this,&PulseWidthCounter::stop); + } + else + { interrupt.fall(this,&PulseWidthCounter::start); + interrupt.rise(this,&PulseWidthCounter::stop); + } +} + +void PulseWidthCounter::start() +{ + _time.reset(); + _time.start(); +} + +void PulseWidthCounter::stop() +{ + _time.stop(); + count = _time.read_us(); +}