iforce2d Chris
/
04_I2C_MPU6050
YMFC-AL implementation in mbed.
PPM.cpp@1:411d267f9d32, 2019-10-04 (annotated)
- Committer:
- iforce2d
- Date:
- Fri Oct 04 17:04:41 2019 +0000
- Revision:
- 1:411d267f9d32
First commit
Who changed what in which revision?
User | Revision | Line number | New 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 | } |