An interface to read a PWM input signal, using InterruptIn
Dependents: PwmIn_HelloWorld PwmIn_ModSerial CHR6dm_reading tugboat ... more
main.cpp
- Committer:
- simon
- Date:
- 2010-02-17
- Revision:
- 0:2d3d93d7b204
File content as of revision 0:2d3d93d7b204:
// 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); } }