PM2_Lib

Dependencies:   LSM9DS1 RangeFinder FastPWM

Revision:
18:21c0a669d6ef
Parent:
16:69911e81dfd4
Child:
19:518ed284d98b
diff -r 777d8acb3884 -r 21c0a669d6ef Servo.cpp
--- a/Servo.cpp	Mon Mar 21 14:03:28 2022 +0000
+++ b/Servo.cpp	Tue Mar 22 08:33:25 2022 +0000
@@ -1,5 +1,8 @@
 #include "Servo.h"
 
+const float Servo::MIN_INPUT = 0.01f;
+const float Servo::MAX_INPUT = 0.99f;
+
 Servo::Servo(PinName Pin) : ServoPin(Pin) {}
 
 /**
@@ -8,7 +11,10 @@
  */
 void Servo::SetPosition(float _Input)
 {
+    if (_Input < MIN_INPUT) _Input = MIN_INPUT;
+    if (_Input > MAX_INPUT) _Input = MAX_INPUT;
     Position = static_cast<int>(_Input * static_cast<float>(Period));
+    printf("Position: %d\r\n", Position);
 }
 
 void Servo::StartPulse()
@@ -29,8 +35,11 @@
  */
 void Servo::Enable(float _StartInput, int _Period)
 {
+    if (_StartInput < MIN_INPUT) _StartInput = MIN_INPUT;
+    if (_StartInput > MAX_INPUT) _StartInput = MAX_INPUT;
     Period = _Period;
     Position = static_cast<int>(_StartInput * static_cast<float>(Period));
+    printf("Position: %d\r\n", Position);
     Pulse.attach(callback(this, &Servo::StartPulse), std::chrono::microseconds{static_cast<long int>(Period)});
 }