开源改变世界

中止/保持引脚 #47

推推 grbl 3年前 (2023-02-10) 289次浏览
关闭
LaurentLM 打开了这个问题 2020 年 10 月 14 日 · 5 条评论
关闭

中止/保持引脚#47

LaurentLM 打开了这个问题 2020 年 10 月 14 日 · 5 条评论

评论

中止/保持引脚 #47

你好,
感谢你的出色工作,我已经将它用于小型磨机一段时间了,它很棒。
我使用的是 Nucleo F401RE,最近在连接新按钮时,我注意到中止/保持引脚与标准 Arduino GRBL 相比倒置了。
我在 A1 上中止并在 A0 上保持。我找不到它在代码中的定义位置。

我还注意到它们没有被拉起,但这很容易改变(gpio.c 的第 187 行)。
没什么大不了的,但我想我会报告的。

中止/保持引脚 #47

您好,
反转按钮的控制掩码在

#定义 CONTROL_MASK (( 1 <<CONTROL_RESET_BIT) | ( 1 <<CONTROL_FEED_HOLD_BIT) | ( 1 <<CONTROL_CYCLE_START_BIT) | ( 1 <<CONTROL_SAFETY_DOOR_BIT))

 

实际阅读发生在

GRBL-高级/grbl/System.c

第 61 至 89 行 f1df624

uint8_t System_GetControlState (无效)
{
uint8_t control_state = 0 ;
uint8_t引脚 = (( GPIO_ReadInputDataBit (GPIOA, GPIO_Pin_0)<<CONTROL_RESET_BIT) |
( GPIO_ReadInputDataBit (GPIOA, GPIO_Pin_1)<<CONTROL_FEED_HOLD_BIT) |
( GPIO_ReadInputDataBit (GPIOA, GPIO_Pin_4)<<CONTROL_CYCLE_START_BIT) |
( GPIO_ReadInputDataBit (GPIOB, GPIO_Pin_8)<<CONTROL_SAFETY_DOOR_BIT));
//必要时反转控制引脚
// pin ^= CONTROL_MASK & settings.system_flags;
引脚 ^= CONTROL_MASK;
如果(引脚){
如果BIT_IS_FALSE(引脚,(1 <<CONTROL_RESET_BIT))){
control_state |= CONTROL_PIN_INDEX_RESET;
}
如果BIT_IS_FALSE(引脚,(1 <<CONTROL_FEED_HOLD_BIT))){
control_state |= CONTROL_PIN_INDEX_FEED_HOLD;
}
如果BIT_IS_FALSE(引脚,(1 <<CONTROL_CYCLE_START_BIT))){
control_state |= CONTROL_PIN_INDEX_CYCLE_START;
}
/* if(BIT_IS_FALSE(pin, (1<<CONTROL_SAFETY_DOOR_BIT))) {
control_state |= CONTROL_PIN_INDEX_SAFETY_DOOR;
} */
}
返回控制状态;
}

 

是的,现在有点乱。也许我会找时间修好它

中止/保持引脚 #47
所有者
希尔德克鲁特 评论了 2020 年 10 月 14 日  

我修复了丢失的反转命令。您现在可以根据需要反转引脚。
这些是相应的位

//为 settings.system_flags 中的布尔设置定义位标志掩码
#定义 BITFLAG_INVERT_RESET_PIN BIT ( 0 )
#定义 BITFLAG_INVERT_FEED_PIN BIT ( 1 )
#定义 BITFLAG_INVERT_CYCLE_PIN BIT ( 2 )
#定义 BITFLAG_INVERT_SAFETY_PIN BIT ( 3 )
#定义 BITFLAG_ENABLE_LIMITS BIT ( 4 )
#定义 BITFLAG_FORCE_HARD_LIMIT_CHECK BIT ( 5 )

 

您可以使用 DEFAULT_SYSTEM_INVERT_MASK 或 $0=xxx 进行设置