Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: Brute_TS_Controller_2018_11
Diff: Servo.cpp
- Revision:
- 4:3088200d6a7a
- Parent:
- 2:8995c167f399
--- a/Servo.cpp Thu Sep 02 17:34:43 2010 +0000 +++ b/Servo.cpp Wed May 09 15:06:16 2018 +0000 @@ -24,7 +24,7 @@ #include "Servo.h" #include "mbed.h" -static float clamp(float value, float min, float max) { +static double clamp(double value, double min, double max) { if(value < min) { return min; } else if(value > max) { @@ -36,30 +36,30 @@ Servo::Servo(PinName pin) : _pwm(pin) { calibrate(); - write(0.5); +// write(0.5); // Edited out 04 May 2018 J Freeman. This to avoid throttle kick on powerup } -void Servo::write(float percent) { - float offset = _range * 2.0 * (percent - 0.5); +void Servo::write(double percent) { + double offset = _range * 2.0 * (percent - 0.5); _pwm.pulsewidth(0.0015 + clamp(offset, -_range, _range)); _p = clamp(percent, 0.0, 1.0); } -void Servo::position(float degrees) { - float offset = _range * (degrees / _degrees); +void Servo::position(double degrees) { + double offset = _range * (degrees / _degrees); _pwm.pulsewidth(0.0015 + clamp(offset, -_range, _range)); } -void Servo::calibrate(float range, float degrees) { +void Servo::calibrate(double range, double degrees) { _range = range; _degrees = degrees; } -float Servo::read() { +double Servo::read() { return _p; } -Servo& Servo::operator= (float percent) { +Servo& Servo::operator= (double percent) { write(percent); return *this; } @@ -69,6 +69,6 @@ return *this; } -Servo::operator float() { +Servo::operator double() { return read(); }