Contact me: hankecnc@gmail.com

安全门优先? #543

推推 grbl 3年前 (2023-01-22) 222次浏览

关闭
bdurbrow 打开了这个问题 2018 年 10 月 21 日 · 5 条评论
关闭

安全门优先?#543

bdurbrow 打开了这个问题 2018 年 10 月 21 日 · 5 条评论

注释

安全门优先? #543

我发现了这一点(我已经发布了 ‘328 版本的代码,它在 2560 版本中有点不同,但问题也存在于那里):

因为它是用“else if”树实现的,如果任何先验条件为真,则不会测试后面的条件……最后检查安全门。

难道不应该首先检查它,以便它优先于其他输入,比如循环开始吗?

来自 system.c,第 63 行:

ISR(CONTROL_INT_vect)
{
uint8_t pin = system_control_get_state();
如果 (pin) {
如果 (bit_istrue(pin,CONTROL_PIN_INDEX_RESET)) {
mc_reset();
} else if (bit_istrue(pin,CONTROL_PIN_INDEX_CYCLE_START)) {
bit_true(sys_rt_exec_state, EXEC_CYCLE_START);
#ifndef ENABLE_SAFETY_DOOR_INPUT_PIN
} else if (bit_istrue(pin,CONTROL_PIN_INDEX_FEED_HOLD)) {
bit_true(sys_rt_exec_state, EXEC_FEED_HOLD);
#else
} else if (bit_istrue(pin,CONTROL_PIN_INDEX_SAFETY_DOOR)) {
bit_true(sys_rt_exec_state, EXEC_SAFETY_DOOR);
#endif
}
}
}

安全门优先? #543
贡献者

不,在这里没关系。它在中断中,整个引脚状态在开始时被复制。

安全门优先? #543

仍然看起来如果循环开始和安全门同时发生,您将获得一个循环开始并忽略安全门,至少直到下一个引脚更改中断

安全门优先? #543
贡献者

呵呵。这些应该是明确的 if 语句。我会纠正它。

安全门优先? #543 chamnit 重新打开了这个 2018 年 10 月 21 日
安全门优先? #543
贡献者

现在应该修好了。

安全门优先? #543
作者

这也需要应用于 grbl-mega 存储库。

喜欢 (0)