注释
所有者
这样对吗?我无法阅读您的代码格式。 void spindle_set_speed(uint32_t pwm_value)
{
#ifndef SPINDLE_PWM_PIN
return;
#else
#ifndef SPINDLE_ENABLE_OFF_WITH_ZERO_SPEED
spindle_set_enable(true);
#else
spindle_set_enable(pwm_value != 0);
#endif
#ifndef INVERT_SPINDLE_PWM
grbl_analogWrite(SPINDLE_PWM_CHANNEL, pwm_value);
#else
if (pwm_value == 0) {
grbl_analogWrite(SPINDLE_PWM_CHANNEL, (1<<SPINDLE_PWM_BIT_PRECISION));
}
else {
grbl_analogWrite(SPINDLE_PWM_CHANNEL, (1<<SPINDLE_PWM_BIT_PRECISION) - pwm_value);
}
#endif
#endif
}
|
作者
是的,但它简化为: void spindle_set_speed(uint32_t pwm_value)
{
#ifndef SPINDLE_PWM_PIN
return;
#else
#ifndef SPINDLE_ENABLE_OFF_WITH_ZERO_SPEED
spindle_set_enable(true);
#else
spindle_set_enable(pwm_value != 0);
#endif
#ifndef INVERT_SPINDLE_PWM
grbl_analogWrite(SPINDLE_PWM_CHANNEL, pwm_value);
#else
grbl_analogWrite(SPINDLE_PWM_CHANNEL, (1<<SPINDLE_PWM_BIT_PRECISION) - pwm_value);
#endif
#endif
}
好的? |
所有者
好的 |
合并
作者
很抱歉在测试中没有发现……我将这个小错误归因于分段近似。解决这个问题可以改善低端的校准。 再次感谢。 |
所有者
合并到 master |
请回答以下问题。
您使用的是什么版本的固件?
b7ee426
问题是否可重复?
是的
什么情况下会出现bug?
使用 INVERT_SPINDLE_PWM,测量占空比与请求占空比的特性存在截距误差。 截距应为零。
以下更改解决了该问题,结果截获了 2e-5,这很好。
事实上,if 语句的另一个分支是多余的,可以简化代码。