Dependents:   serial_connected_mcu_nucleo serial_connected_mcu_nucleo

Revision:
3:6cadf3326257
Parent:
2:58169cf31b49
Child:
4:31ed2ce96ca3
diff -r 58169cf31b49 -r 6cadf3326257 servo.cpp
--- a/servo.cpp	Sat Jun 25 05:18:53 2016 +0000
+++ b/servo.cpp	Sat Jun 25 09:04:06 2016 +0000
@@ -1,7 +1,7 @@
 #include "servo.hpp"
 #include "mbed.h"
 
-const float servo::_min_position_sec = 0.9f * 0.001f;
+const float servo::_min_position_sec = 0.85f * 0.001f;
 const float servo::_max_position_sec = 2.1f * 0.001f;
 
 servo::servo(PinName pin) : _pwm(pin) {
@@ -9,5 +9,12 @@
 }
 
 void servo::set_position(float pos) {
+    if (pos >= 1.0f) {
+        pos = 1.0f;
+    } else if (pos <= -1.0f) {
+        pos = -1.0f;
+    }
+    pos += 1.0f;
+    pos *= 0.5f;
     _pwm.pulsewidth((1.0f - pos) * _min_position_sec + pos * _max_position_sec);
 }