Dependents: serial_connected_mcu_nucleo serial_connected_mcu_nucleo
Diff: servo.cpp
- Revision:
- 3:6cadf3326257
- Parent:
- 2:58169cf31b49
- Child:
- 4:31ed2ce96ca3
--- 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); }