Browse Source

🩹 Clarify servo µs min/max

Scott Lahteine 1 year ago
parent
commit
85ded0b9bd
1 changed files with 6 additions and 6 deletions
  1. 6 6
      Marlin/src/HAL/shared/servo.cpp

+ 6 - 6
Marlin/src/HAL/shared/servo.cpp

@@ -60,8 +60,8 @@
 ServoInfo_t servo_info[MAX_SERVOS];             // static array of servo info structures
 uint8_t ServoCount = 0;                         // the total number of attached servos
 
-#define SERVO_MIN(v) (MIN_PULSE_WIDTH - (v) * 4) // minimum value in uS for this servo
-#define SERVO_MAX(v) (MAX_PULSE_WIDTH - (v) * 4) // maximum value in uS for this servo
+#define SERVO_MIN_US(v) (MIN_PULSE_WIDTH - (v) * 4) // minimum value in uS for this servo
+#define SERVO_MAX_US(v) (MAX_PULSE_WIDTH - (v) * 4) // maximum value in uS for this servo
 
 /************ static functions common to all instances ***********************/
 
@@ -117,7 +117,7 @@ void Servo::detach() {
 
 void Servo::write(int value) {
   if (value < MIN_PULSE_WIDTH)    // treat values less than 544 as angles in degrees (valid values in microseconds are handled as microseconds)
-    value = map(constrain(value, 0, 180), 0, 180, SERVO_MIN(min), SERVO_MAX(max));
+    value = map(constrain(value, 0, 180), 0, 180, SERVO_MIN_US(min), SERVO_MAX_US(max));
   writeMicroseconds(value);
 }
 
@@ -126,8 +126,8 @@ void Servo::writeMicroseconds(int value) {
   byte channel = servoIndex;
   if (channel < MAX_SERVOS) {  // ensure channel is valid
     // ensure pulse width is valid
-    value = constrain(value, SERVO_MIN(min), SERVO_MAX(max)) - (TRIM_DURATION);
-    value = usToTicks(value);  // convert to ticks after compensating for interrupt overhead - 12 Aug 2009
+    LIMIT(value, SERVO_MIN_US(min), SERVO_MAX_US(max));
+    value = usToTicks(value - (TRIM_DURATION));  // convert to ticks after compensating for interrupt overhead - 12 Aug 2009
 
     CRITICAL_SECTION_START();
     servo_info[channel].ticks = value;
@@ -136,7 +136,7 @@ void Servo::writeMicroseconds(int value) {
 }
 
 // return the value as degrees
-int Servo::read() { return map(readMicroseconds() + 1, SERVO_MIN(min), SERVO_MAX(max), 0, 180); }
+int Servo::read() { return map(readMicroseconds() + 1, SERVO_MIN_US(min), SERVO_MAX_US(max), 0, 180); }
 
 int Servo::readMicroseconds() {
   return (servoIndex == INVALID_SERVO) ? 0 : ticksToUs(servo_info[servoIndex].ticks) + (TRIM_DURATION);