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.
Dependencies: SoftPWM
Fork of RC_Servo by
Diff: RC_Servo.cpp
- Revision:
- 7:014d36c33b73
- Parent:
- 6:cf65fc8b0de1
- Child:
- 8:df674a9d9535
--- a/RC_Servo.cpp Tue Jun 05 07:25:09 2018 +0000
+++ b/RC_Servo.cpp Tue Jun 05 12:22:17 2018 +0000
@@ -2,7 +2,6 @@
RC_Servo::RC_Servo(PinName PWM, int _extended) : _RCpwm(PWM)
{
- _tickRC.attach(callback(this,&RC_Servo::generatePwm),0.02);
if (_extended) {
_RCpMin = 400;
_RCpMax = 2400;
@@ -12,24 +11,6 @@
}
}
-void RC_Servo::generatePwm (void)
-{
-
- static int output = 0;
- static long pulseWidthTime = 0;
-
- if (pulseWidthTime == 0) pulseWidthTime = _RCpMin;
- _tickRC.detach();
- output = !output;
- _RCpwm = output;
-
- if (output == 1) _tickRC.attach (callback(this,&RC_Servo::generatePwm), pulseWidthTime);
- else {
- _tickRC.attach (callback(this,&RC_Servo::generatePwm), 20000-pulseWidthTime);
- pulseWidthTime = RCdelay;
- }
-}
-
int RC_Servo::setLimits (int Tmin, int Tmax)
{
if ((Tmin > 400) && (Tmin < Tmax)) _RCpMin = Tmin;
@@ -39,13 +20,13 @@
return 0;
}
-void RC_Servo::write (float position)
+void RC_Servo::write (double position)
{
if ((position >= 0) && (position <= 1))
- RCdelay = _RCpMin + (long)((_RCpMax - _RCpMin) * position);
+ _RCpwm.pulsewidth_us (_RCpMin + (long)((_RCpMax - _RCpMin) * position));
}
-RC_Servo& RC_Servo::operator= (float position)
+RC_Servo& RC_Servo::operator= (double position)
{
write (position);
return *this;
