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.
Revision 3:d13b9e50312f, committed 2015-04-01
- Comitter:
- joe4465
- Date:
- Wed Apr 01 11:18:23 2015 +0000
- Parent:
- 2:b67f18c84c05
- Commit message:
- ...
Changed in this revision
| Ppm.cpp | Show annotated file Show diff for this revision Revisions of this file |
| Ppm.h | Show annotated file Show diff for this revision Revisions of this file |
--- a/Ppm.cpp Wed Mar 04 18:49:31 2015 +0000
+++ b/Ppm.cpp Wed Apr 01 11:18:23 2015 +0000
@@ -3,7 +3,7 @@
//Ppm reader by Joe Roberts, based on work by John Wolter
//This program takes the Ppm Signal (Pulse Position Modulation) from your RC transmitter and outputs the data between the min/max outputs passed into the constructor
//See
-Ppm::Ppm(PinName pin, float minimumOutput, float maximumOutput, int minimumPulseTime, int maximumPulseTime, int numberOfChannels, int throttleChannel)
+Ppm::Ppm(PinName pin, int minimumOutput, int maximumOutput, int minimumPulseTime, int maximumPulseTime, int numberOfChannels, int throttleChannel)
{
//Assign local variables passed into constructor
_ppmPin = new InterruptIn(pin);
@@ -80,7 +80,7 @@
}
//Place mapped channel data into the passed in array
-void Ppm::GetChannelData(float * channelData)
+void Ppm::GetChannelData(double* channelData)
{
//Iterate over the channel times array
for(int i = 0; i < _numberOfChannels; i++)
@@ -90,14 +90,14 @@
else
{
//Map the channel times to value between the channel min and channel max
- channelData[i] = Map(_completeTimes[i] ,_minimumPulseTime, _maximumPulseTime, _minimumOutput, _maximumOutput);
+ channelData[i] = Map(_completeTimes[i] , _minimumPulseTime, _maximumPulseTime, _minimumOutput, _maximumOutput);
}
}
return;
}
-float Ppm::Map(float input, float inputMin, float inputMax, float outputMin, float outputMax)
+double Ppm::Map(double input, double inputMin, double inputMax, double outputMin, double outputMax)
{
return (input - inputMin) * (outputMax - outputMin) / (inputMax - inputMin) + outputMin;
}
\ No newline at end of file
--- a/Ppm.h Wed Mar 04 18:49:31 2015 +0000
+++ b/Ppm.h Wed Apr 01 11:18:23 2015 +0000
@@ -7,7 +7,7 @@
{
public:
//Constructor
- Ppm(PinName pin, float minimumOutput, float maximumOutput, int minimumPulseTime, int maximumPulseTime, int numberOfChannels, int throttleChannel);
+ Ppm(PinName pin, int minimumOutput, int maximumOutput, int minimumPulseTime, int maximumPulseTime, int numberOfChannels, int throttleChannel);
private:
//Interrupt
@@ -35,20 +35,20 @@
//Minimum pulse time uS
int _minimumPulseTime;
//Maximum pulse time uS
- int _maximumPulseTime;
+ double _maximumPulseTime;
//Minimum output
- float _minimumOutput;
+ double _minimumOutput;
//Maximum output
- float _maximumOutput;
+ double _maximumOutput;
//Throttle channel - used for fail safe
int _throttleChannel;
public:
//Get channel data
- void GetChannelData(float * channelData);
+ void GetChannelData(double* channelData);
private:
- float Map(float input, float inputMin, float inputMax, float outputMin, float outputMax);
+ double Map(double input, double inputMin, double inputMax, double outputMin, double outputMax);
};
#endif
Joseph Roberts
