注释
这可能是相关的。启用组合时(取消注释 my_machine.h 中的 #define Y_GANGED 1),它使用下一个可用的轴电机,而不是最后一个。所以当 N_AXIS 为 3 时,它使用 A 作为联动电机。当 N_AXIS 为 4 时,它使用 B。这是与早期版本 grblHAL 的变化,当时 B 始终是用于组合的电机。 我不知道这是否是故意的,这样做可能有充分的理由。但是有人将带有联动轴的 3 轴机器升级到最新的 grblHAL 将不得不说他们有 4 个轴或改变他们的接线。这是一个非常常见的配置——那里有很多 WorkBees。我估计超过一半的客户拥有双电机 Y 龙门架。 |
特热约 评论 2021 年 7 月 14 日
奇怪,我没有得到错误。
我不相信它有任何关系。引脚分配在grbl/motor_pins.h中完成,它使用grbl/driver_opts.h中定义的值来完成。可能是 Arduino 构建系统搞砸了 – 它在编译之前将源代码复制到临时文件夹,有时会失败(通过不复制所有更改的文件)。
这是故意的,并在changelog中被警告。 这背后的原因之一是始终将未使用的电机引脚从上到下保留,以便可以将它们重新分配为辅助输出,而无需过于复杂的预处理器代码。这种方法也可能使引脚与电机分配预处理器代码更简单? |
菲尔巴雷特 评论 2021 年 7 月 15 日
我在 driver_opts.h 中的任何地方都看不到它。我将通过构建输出来挖掘是否有什么东西。奇怪的是它会改变。我将添加更多“警告#ifs”来尝试追踪它发生的位置。疏浚#ifs 让我很头疼。 我明白你为什么做出改变。我会张贴一张便条让我的客户注意它。早期采用者税? |
特热约 评论 2021 年 7 月 15 日
计算电机数量在这里完成。 我回复的时候忘记了新命令,四时
我猜是这样,好消息是设置现在跨驱动程序是一致的,并且更容易在地图文件中设置。 |
菲尔巴雷特 评论 2021 年 7 月 15 日
在 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,我收到以下错误:
还,
|
特热约 评论 2021 年 7 月 15 日
我认为是这样,在 $pins 报告上还需要做更多的工作。$pins 输出也应该扩展为包括 UART、PWM、I2C 等非普通 GPIO 的引脚。一步一步来… 如果你为 pro board 编译 5 个轴会发生什么?还在报错?如果不是,那么您的 T41U5XBB_map.h 是坏的吗? |
专业版和普通版都有相同的错误。两个地图文件都来自 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 等消息)。
|
特热约 评论 2021 年 7 月 15 日
如果您卸下 M4 电机定义的防护装置,它会编译吗?改变
至
如果为 N_ABC_MOTORS 添加警告,输出是什么?它应该是 2 但是 1? |
菲尔巴雷特 评论 2021 年 7 月 15 日
在 N_AXIS 5 的情况下,N_ABC_MOTORS 是 3。(应该是 2?)
这是生成该输出的 drivr_opts.h 中的代码:
|
菲尔巴雷特 评论 2021 年 7 月 15 日
最后,当 N_AXIS 为 4 时,N_ABC_MOTORS 为 2。因某个错误而关闭? |
特热约 评论 2021 年 7 月 15 日
谢谢,这显然是错误的。 更改 编译?不知何故 |
特热约 评论 2021 年 7 月 15 日
|
菲尔巴雷特 评论 2021 年 7 月 15 日
关闭 Arduino IDE,清空临时文件夹(它确实包含 arduino 构建和缓存目录)。没有变化,同样的问题。 改为 现在这会导致预期的错误,而不是其他错误的级联。
|
特热约 评论 2021 年 7 月 15 日
好的,
就在之前
在 driver_opts.h 中,然后重试。还是失败? |
但是,该更改导致 N_AXIS 4 为 A AXIS 获得相同的错误 [编辑 – 这是对先前评论的回应,即前一个评论]
|
菲尔巴雷特 评论 2021 年 7 月 15 日
我需要在这里进行快速重置。过去,将 N_AXIS 设置为 5 允许轴组合。我假设情况仍然如此,并在 my_machine 和 map 文件中复制了以前的设置。但是,有时我有点慢 – N_AXIS 5 和 Y_GANGED 1 应该在新系统中产生错误。不过,一连串的错误让我认为这是一个问题。错误的冲击是 Arduino IDE 的结果,不像真正的 Make 系统会在第一次错误返回时退出。 我在这里吗? |
可能是由于过去没有进行任何检查。如果 N_AXIS 为 5,如果启用联动/平方轴,则必须有一个六电机 BOB。
我刚刚尝试使用 STM32CubeIDE,生成了一堆错误,但没有像 Arduino 输出那样。我想这取决于有多少地方 driver.h 被包括在内。
我不确定 – 这取决于编译器设置? [编辑] |
菲尔巴雷特 评论 2021 年 7 月 16 日
很抱歉浪费了您的时间。我应该在发帖前做一些研究。将关闭。 关于升级联动机器问题。我将制作一个交换 A 和 B 引脚的地图文件,这样客户就不必更改他们的接线。 |
菲尔巴雷特 评论 on 14 Jul 2021
在 grbl/config.h 第 38 行,将 N_AXIS 设置为 5
#define N_AXIS 5 // Number of axes
并编译。获取大量表单错误
当 N_AXIS 设置为 4 时,不会出现此问题。
发生这种情况是因为当 N_AXIS 为 5 时 N_ABC_MOTORS 被设置为 3。
我在 driver_opts.h 和 T41U5XBB_map.h 中放置了#warning 消息,看起来 N_ABC_AXIS 为 2 而 N_GANGED 为 0 所以当 N_ABC_MOTORS 在 driver_opts.h 中设置时它应该是2. 然而在 T41U5XBB_map.h 中,N_ABC_MOTORS 是 3。
我把它放在 T41U5XBB_map.h 中,在第 24 行附近的错误测试之前。
编译器打印出:
使用 Arduino 1.8.15 和 Teensyduino 1.54
my_machine 在两种情况下(4 轴和 5 轴):