评论
这可能是相关的。启用组合时(在 my_machine.h 中取消注释 #define Y_GANGED 1),它使用下一个可用的轴电机而不是最后一个。所以当 N_AXIS 为 3 时,它使用 A 作为联动电机。当 N_AXIS 为 4 时,它使用 B。这是对早期版本 grblHAL 的更改,当时 B 始终是用于联动的电机。 我不知道这是不是故意的,这样做可能有充分的理由。但是有人将带有联动轴的 3 轴机器升级到最新的 grblHAL 将不得不说他们有 4 个轴或改变他们的接线。这是一个非常常见的配置——那里有很多 WorkBees。我估计超过一半的客户都拥有双电机 Y 龙门架。 |
奇怪,我没有得到错误。
我不认为这有任何关系。引脚分配在grbl/motor_pins.h中完成,它使用grbl/driver_opts.h中的定义值来完成此操作。可能是 Arduino 构建系统搞砸了——它在编译之前将源代码复制到一个临时文件夹,有时会失败(通过不复制所有更改的文件)。
这是故意的,并在更新日志中被警告。 这背后的原因之一是始终从上到下保留未使用的电机引脚,以便无需太复杂的预处理器代码即可将它们重新分配为辅助输出。这种方法也可能使引脚与电机分配预处理器代码更简单? |
我在 driver_opts.h 的任何地方都看不到它。我将挖掘构建输出以查看是否有内容。奇怪的是它改变了。我将添加更多“警告#ifs”以尝试追踪它发生的位置。尽管#ifs 疏浚让我头疼。 我明白你为什么要做出改变。我会张贴一张便条供我的客户注意。早期采用者税? |
电机数量的计算在这里完成。 我回答的时候忘记了新命令,四时
我想是的,好处是现在的设置在驱动程序之间是一致的,并且更容易在映射文件中设置。 |
在 N_AXIS == 4 和 Y_GANGED == 1 的情况下,它可以正常工作。ioSender 看到 XYZA 并且 B 电机正确联动到 Y。这是 $pins 输出。它显示了 Y 组合(尽管不明确 – 在这两种情况下我们可以使用 Y1 和 Y2 而不是只有 Y 吗?)顺便说一下,这是针对 T41BB5X_Pro_map.h 的。
当我在 my_machine.h 中有 N_AXIS 4(在 grbl/config.h 中)和#define Y_GANGED 1 时,我看到编译器的输出
这是我从第 73 行开始添加到 driver_opts.h 的代码。
|
在 grbl/config.h 中将 N_AXIS 设置为 5 后,出现以下错误:
还,
|
我认为是的,必须在 $pin 报告上做更多的工作。$pins 输出也应该扩展到包括 UART、PWM、I2C 等不是普通 GPIO 的引脚。一步一步来… 如果为 pro 板编译 5 个轴会怎样?还在报错?如果不是那么你的 T41U5XBB_map.h 是坏的? |
Pro 和普通板都有相同的错误。这两个地图文件都来自 repo——我在 7 月 10 日将它们拉下来。这是当 N_AXIS 设置为 5(在 grbl/config.h 中)时 Arduino 的完整构建输出。使用 Pro 地图文件(从 my_machine.h 中选择)不幸的是,它会换行,因此输出难以阅读。 请注意从实际第 9 行开始的 ResolveLibrary(grblHAL_Teensy4.h) 部分。有几个错误提示“检测 D:\Documents\Arduino\libraries\grblHAL_Teensy4\src\driver.c 包含的库时出错”(文件名更改,但路径相同)。N_AXIS 4 构建的日志文件是相同的,只是没有错误消息(即相同的 ResolveLibrary、Alternatives for 等消息)。
|
在 grbl/config.h 的第 38 行中,将 N_AXIS 设置为 5
#define N_AXIS 5 // Number of axes
并编译。得到大量的表格错误
当 N_AXIS 设置为 4 时,不会出现此问题。
发生这种情况是因为当 N_AXIS 为 5 时 N_ABC_MOTORS 设置为 3。
我将#warning 消息放在 driver_opts.h 和 T41U5XBB_map.h 中,看起来 N_ABC_AXIS 为 2 而 N_GANGED 为 0,因此当在 driver_opts.h 中设置 N_ABC_MOTORS 时它应该是2. 然而在 T41U5XBB_map.h 中,N_ABC_MOTORS 是 3。
我将它放在 T41U5XBB_map.h 中,在第 24 行附近的错误测试之前。
编译器打印出:
使用 Arduino 1.8.15 和 Teensyduino 1.54
两种情况下的 my_machine(4 轴和 5 轴):