自定义机器功能
如果您的机器需要一些特殊功能,Grbl_ESP32 中有一些挂钩可以为您的机器调用自定义函数。您需要编写这些函数。Atari 1020 机器就是一个很好的例子。请参阅现有源代码文件中的参考资料(atari_1020.h 和 atari_1020.cpp)。
注意:如果您使用的机器定义包括Custom文件夹中的文件。您必须使用PlatformIO进行编译。
代码文件
您应该为您的机器创建自定义 .h 和 .cpp 文件,例如 atari_1020.h 和 atari_1020.cpp。将 .h 文件放在Machines 文件夹中,将 .cpp 文件放在Custom 文件夹中。在 cpu_map.h 中的 cpu_map 定义中放置一个包含,例如 #include “atari_1020.h”。尝试仅使用这 2 个文件来完成所有操作。
机器初始化
如果您的机器需要一些初始设置,例如定义一些 I/O 或启动后台任务,您可以将#define USE_MACHINE_INIT放在头文件中。它将调用您必须提供的函数void machine_init() 。
用户定义归位
如果正常归位对您不起作用,或者您需要在归位前做一些特殊的事情,您可以编写自己的函数。将#define USE_CUSTOM_HOMING放在头文件中。Grbl_ESP32 回到机器后会看到这个。它将调用您必须提供的函数 **bool user_defined_homing() **。如果您从此函数返回true ,它会告诉 Grbl_ESP32 您正在处理所有归位。如果您返回false,Grbl_ESP32 将运行其正常的归位序列。
用户定义的宏按钮
用户工具更改
通常 Grbl_ESP32 会忽略工具更改。它只是跟踪当前的工具编号。如果将#define USE_TOOL_CHANGE放入头文件中,它会在看到 M6 gcode 命令时调用函数void user_tool_change(uint8_t new_tool) 。
M30 命令
M30 gcode 命令表示文件结束。通常 Grbl 会忽略 M30 命令。如果将#define USE_M30放在头文件中,它将调用一个函数void user_m30(),当它看到 M30 命令时,您必须提供该函数。