First version of my PPM library.
Dependents: PPM_Test QuadCopter Quadcopter_mk2
Have a look at PPM_Test to see how this library is used.
Import programPPM_Test
Test program for my PPM library.
Ppm.h
- Committer:
- joe4465
- Date:
- 2015-04-01
- Revision:
- 3:d13b9e50312f
- Parent:
- 2:b67f18c84c05
File content as of revision 3:d13b9e50312f:
#include "mbed.h" #ifndef Ppm_H #define Ppm_H class Ppm { public: //Constructor Ppm(PinName pin, int minimumOutput, int maximumOutput, int minimumPulseTime, int maximumPulseTime, int numberOfChannels, int throttleChannel); private: //Interrupt void SignalRise(); //Interrupt pin InterruptIn *_ppmPin; //Timer, times length of pulses Timer _timer; //Number of channels in Ppm signal int _numberOfChannels; //Current channel char _currentChannel; //Stores channel times int _times[100]; //Stores most recent complete frame times int _completeTimes[100]; //Keeps track of time between Ppm interrupts int _timeElapsed; //Minimum time of frame int _minFrameTime; //If the pulse time for a channel is this short, something is wrong uS int _shortTime; //Minimum pulse time uS int _minimumPulseTime; //Maximum pulse time uS double _maximumPulseTime; //Minimum output double _minimumOutput; //Maximum output double _maximumOutput; //Throttle channel - used for fail safe int _throttleChannel; public: //Get channel data void GetChannelData(double* channelData); private: double Map(double input, double inputMin, double inputMax, double outputMin, double outputMax); }; #endif