注释
控制引脚输入可以是任何 IO 引脚。当它们被读取时,它们组合成一个状态字节。system.h 定义位…
system.cpp 在读取引脚的函数中有这个
在 config.h 中你可以像这样定义掩码……
.. 或者用“|”将更多的别针组合在一起 我还没有听到这样做的人的反馈,所以希望一切正常。 顺便说一句:当我最近配置机器时,我在 cpu_map.h 中放置了很多定义。这样可以更轻松地在一处保留尽可能多的更改。 |
谢谢。我会试一试,让你知道进展如何。我尝试对其进行测试,但我认为我遇到了某种 IDE 问题,因为在更改 config.h 上的一行后,它告诉我该程序超出了 esp32 的内存容量。一旦我完成排序,我就可以测试控制引脚掩码。 |
为此更新: 我尝试将 config.h 中的反转控制引脚掩码更改为
但这没有用。据我所知,它几乎没有做任何事情。所以我做了一些搜索,并在底部的 cpu_map.h 中找到了这一行:
即使它说“不要改变”,我还是把它改成了
它适用于反转安全门销。在我看来,您修改了它,也许忘记了它。经过一些试验,我发现这个面具的顺序是:
这是你的项目,由你决定,但我建议将任何这样的设置移动到 config.h,比其他任何东西都更能保持与 AVR Grbl 设置方式的一致性。对于控制引脚掩码,我会在 config.h 中放置类似这样的内容:
我在 WebUI 分支中为上述内容(我的第一个)创建了一个拉取请求,您可以考虑加入。由于这是我的第一个拉取请求,如果您能告诉我我是否做对了,我将不胜感激。 如果您不接受拉取请求,至少我会将 cpu_map.h 中的“不要更改”注释替换为掩码如何像上面那样工作的描述。 我还在 cpu_map.h 中看到了探针引脚掩码,但我认为这很好,因为可以在 EEPROM 设置中反转探针引脚。 |
好吧,我想我对拉取请求做错了什么,因为修改的第二个文件没有通过。我还从 cpu_map.h 中删除了掩码,它没有出现在拉取请求中。我原以为拉取请求会将我分支中的所有文件与您的进行比较,并包括对拉取请求的所有更改。你知道我做错了什么吗? |
感谢您为此所做的所有工作。 我想我本来是不支持INVERT_CONTROL_PIN_MASK的,后来没清理笔记。 我会负责进行更改。我不知道你出了什么问题。 |
所以我准备将我的 AVR Grbl 换成 ESP32 Grbl,并将其用于我拥有的 CNC 改装铣床。我有一件事我想做,但由于我缺乏 C 编程知识,我不知道该怎么做。我想要做的是反转安全门输入引脚而不是其他控制引脚。在 AVR Grbl 中,Config.h 文件具有以下允许这样做的内容:
//根据掩码反转控制命令引脚的引脚逻辑。这实质上意味着您可以
在指定的引脚上使用 // 常闭开关,而不是默认的常开开关。
// 注意:顶部选项将屏蔽和反转所有控制引脚。底部选项是
// 仅反转两个控制引脚、安全门和复位的示例。有关其他位定义,请参见 cpu_map.h。
// #define INVERT_CONTROL_PIN_MASK CONTROL_MASK // 默认禁用。取消注释以禁用。
// #define INVERT_CONTROL_PIN_MASK ((1<<CONTROL_SAFETY_DOOR_BIT)|(1<<CONTROL_RESET_BIT)) // 默认禁用。
我看到在 ESP32 Grbl 中,这已经改变了,我在 cpu_map.h 中看到了以下注释
与 AVR 版本不同,某些引脚不会强制进入同一端口。
因此,位掩码的使用方式不同,通常不应
更改。它们现在被保存下来,以便于
与 AVR grbl保持同步
那么,目前有没有一种方法可以只反转选择的控制引脚而不反转其他的?