Matthias Grob
/
FlyBed2
My fully self designed first stable working Quadrocopter Software.
RC/RC_Channel.h@10:14390c90c3f5, 2015-08-31 (annotated)
- Committer:
- maetugr
- Date:
- Mon Aug 31 20:20:50 2015 +0000
- Revision:
- 10:14390c90c3f5
- Parent:
- 0:12950aa67f2a
before changing to MPU9250
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
maetugr | 0:12950aa67f2a | 1 | #ifndef RC_CHANNEL_H |
maetugr | 0:12950aa67f2a | 2 | #define RC_CHANNEL_H |
maetugr | 0:12950aa67f2a | 3 | |
maetugr | 0:12950aa67f2a | 4 | #include "mbed.h" |
maetugr | 0:12950aa67f2a | 5 | |
maetugr | 0:12950aa67f2a | 6 | class RC_Channel |
maetugr | 0:12950aa67f2a | 7 | { |
maetugr | 0:12950aa67f2a | 8 | public: |
maetugr | 0:12950aa67f2a | 9 | RC_Channel(PinName mypin, int index); // NO p19/p20!!!!, they don't support InterruptIn |
maetugr | 0:12950aa67f2a | 10 | int read(); // read the last measured data |
maetugr | 0:12950aa67f2a | 11 | |
maetugr | 0:12950aa67f2a | 12 | private: |
maetugr | 0:12950aa67f2a | 13 | int index; // to know which channel of the RC an instance has (only for calibrations savings) |
maetugr | 0:12950aa67f2a | 14 | int time; // last measurement data |
maetugr | 0:12950aa67f2a | 15 | float scale; // calibration values |
maetugr | 0:12950aa67f2a | 16 | float offset; |
maetugr | 0:12950aa67f2a | 17 | |
maetugr | 0:12950aa67f2a | 18 | InterruptIn myinterrupt; // interrupt on the pin to react when signal falls or rises |
maetugr | 0:12950aa67f2a | 19 | void rise(); // start the time measurement when signal rises |
maetugr | 0:12950aa67f2a | 20 | void fall(); // stop the time mesurement and save the value when signal falls |
maetugr | 0:12950aa67f2a | 21 | Timer timer; // timer to measure the up time of the signal and if the signal timed out |
maetugr | 0:12950aa67f2a | 22 | |
maetugr | 0:12950aa67f2a | 23 | Ticker timeoutchecker; // Ticker to see if signal broke down |
maetugr | 0:12950aa67f2a | 24 | void timeoutcheck(); // to check for timeout, checked every second |
maetugr | 0:12950aa67f2a | 25 | |
maetugr | 0:12950aa67f2a | 26 | // Calibration value saving |
maetugr | 0:12950aa67f2a | 27 | void saveCalibrationValue(float * value, char * fileextension); |
maetugr | 0:12950aa67f2a | 28 | void loadCalibrationValue(float * value, char * fileextension); |
maetugr | 0:12950aa67f2a | 29 | }; |
maetugr | 0:12950aa67f2a | 30 | |
maetugr | 0:12950aa67f2a | 31 | #endif |