An interface to read a PWM input signal, using InterruptIn
Dependents: PwmIn_HelloWorld PwmIn_ModSerial CHR6dm_reading tugboat ... more
Diff: main.cpp
- Revision:
- 1:6d68eb9b6bbb
- Parent:
- 0:2d3d93d7b204
diff -r 2d3d93d7b204 -r 6d68eb9b6bbb main.cpp --- a/main.cpp Wed Feb 17 18:32:34 2010 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,49 +0,0 @@ -// Example PwmIn class to detect PWM inputs, sford -// - Note: uses InterruptIn, so not available on p19/p20 - -#include "mbed.h" - -class PwmIn { -public: - PwmIn(PinName p) : _p(p) { - _p.rise(this, &PwmIn::rise); - _p.fall(this, &PwmIn::fall); - _period = 0.0; - _pulsewidth = 0.0; - _t.start(); - } - - void rise() { - _period = _t.read(); - _t.reset(); - } - - void fall() { - _pulsewidth = _t.read(); - } - - float period() { return _period; } - float pulsewidth() { return _pulsewidth; } - float dutycycle() { return _pulsewidth / _period; } - -protected: - InterruptIn _p; - Timer _t; - float _pulsewidth, _period; -}; - -PwmOut x(p21); -PwmOut y(p22); - -PwmIn a(p5); -PwmIn b(p6); - -int main() { - x = 0.5; - y = 0.2; - while(1) { - printf("a: pw = %f, period = %f\n", a.pulsewidth(), a.period()); - printf("b: pw = %f, period = %f\n", b.pulsewidth(), b.period()); - wait(2); - } -}