A class to control a model R/C servo, using a PwmOut

Fork of Servo by Simon Ford

Revision:
4:fc2e5d57af37
Parent:
2:8995c167f399
--- a/Servo.cpp	Thu Sep 02 17:34:43 2010 +0000
+++ b/Servo.cpp	Thu Jul 07 12:55:07 2016 +0000
@@ -43,11 +43,31 @@
     float 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);
-    _pwm.pulsewidth(0.0015 + clamp(offset, -_range, _range));
+   // float offset = _range * (degrees / _degrees);
+    if(degrees>0){
+    
+        kat= 0.00145+ fabs(degrees)*0.00001111;
+        _pwm.pulsewidth(kat);
+   
+   }
+   
+   else if (degrees==0){
+        kat=0.00145;
+        _pwm.pulsewidth(kat);
+     }
+     
+     else {
+         kat= 0.00145- fabs(degrees)*0.00001111;
+         _pwm.pulsewidth(kat);
+         }
+        
+    //_pwm.pulsewidth(0.00245);
+    //k=(0.0015 + clamp(offset, -_range, 0.002 +_range));
+    
 }
 
 void Servo::calibrate(float range, float degrees) {