YMFC-AL implementation in mbed.

Dependencies:   mbed

Committer:
iforce2d
Date:
Fri Oct 04 17:04:41 2019 +0000
Revision:
1:411d267f9d32
First commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
iforce2d 1:411d267f9d32 1 #include "mbed.h"
iforce2d 1:411d267f9d32 2 #include "PPM.h"
iforce2d 1:411d267f9d32 3
iforce2d 1:411d267f9d32 4 PPM::PPM(PinName pin): ppm(pin)
iforce2d 1:411d267f9d32 5 {
iforce2d 1:411d267f9d32 6 for (int i = 0; i < NUM_CHANNELS; i++)
iforce2d 1:411d267f9d32 7 channels[i] = 1500;
iforce2d 1:411d267f9d32 8 currentChannel = 0;
iforce2d 1:411d267f9d32 9 timer.start();
iforce2d 1:411d267f9d32 10 ppm.rise( callback(this, &PPM::rise) );
iforce2d 1:411d267f9d32 11 }
iforce2d 1:411d267f9d32 12
iforce2d 1:411d267f9d32 13 void PPM::rise()
iforce2d 1:411d267f9d32 14 {
iforce2d 1:411d267f9d32 15 uint16_t time = timer.read_us();
iforce2d 1:411d267f9d32 16 timer.reset();
iforce2d 1:411d267f9d32 17
iforce2d 1:411d267f9d32 18 if ( time > 2500 )
iforce2d 1:411d267f9d32 19 {
iforce2d 1:411d267f9d32 20 currentChannel = 0;
iforce2d 1:411d267f9d32 21 }
iforce2d 1:411d267f9d32 22 else if ( currentChannel < NUM_CHANNELS )
iforce2d 1:411d267f9d32 23 {
iforce2d 1:411d267f9d32 24 channels[currentChannel] = time;
iforce2d 1:411d267f9d32 25 currentChannel++;
iforce2d 1:411d267f9d32 26 }
iforce2d 1:411d267f9d32 27 }