注释
电光 评论 on 3 Nov 2016
你想让它做什么?您是否配置了硬限制?请参阅文档https://github.com/grbl/grbl/wiki/Configuring-Grbl-v0.9 |
是的,硬限制打开,开关被触发,但是当达到限制时没有任何反应,没有执行中断 = 没有硬限制警报。 |
更新更多信息 – 归位时警报响起。但是,这不应该在任何操作期间都不会损坏机器吗? |
电光 评论 on 4 Nov 2016
可能是因为您使用的是 NC 开关。我从未尝试过它们。 |
我应该与 NC 开关一起使用 我的设置是 |
Electrokean:我宁愿坚持使用 NC 开关,我认为它们比 NO 更安全。 vMeph:我将开关串联 GND->SW1->SW2->Limit PIN。不要使用电阻,相信这个配置它们已经过时了,因为内部上拉应该打开[没有在 config.h 中禁用它]。 |
我有外部上拉,但没有移除内部上拉和开关和 gnd 之间的 47 uf 上限,我遇到了导致误报的噪音问题,这解决了我的问题(没有禁用 config.h) |
vMeph:但你的开关是NO,对吧?我认为如果您选择NC,噪音问题会更好。不知道如何调试问题,也想为其他人帮助/修复它。 |
我的开关是NC |
你能显示一个连接布线的草图以进行比较吗? |
我做了你的设置,它的工作方式和我的一样。我上传了这个问题的视频。正如您将看到的,限位开关将被触发到“1”,但机器移动不会停止,不会创建警报。 |
我不知道你使用的是什么 arduino 或你有什么版本我假设你有 arduino UNO #define LIMIT_DDR DDRB 看起来你已经定义了 #define LIMIT_DDR DDRC 并且应该就像您设置了 PORTC DDRC 和 PINC 并且从我在 grbl 1.1 上看到的信息是 我假设您使用了错误的寄存器 我获得信息的链接在这里 在您的情况下,保存您的机器配置设置可能是一个好主意,清理您的 arduino eprom 等。然后开始新的安装? grbl 1.1 是新版本,它仍然是 beta 版本,但到目前为止还没有重大问题,它有新的选项,如实时覆盖进给速度、激光选项等。 |
我更改了端口映射,以便可以使用 2560 顶部的 RAMPS 板(绘制端口/引脚图非常痛苦,如果有人需要,可以分享)。根据 2560 规范设置的引脚/端口 – 自定义分配。我遵循了管脚必须共享同一个端口的规则。 |
@kyjak: 我觉得把你所做的所有修改都分享出来会很好,否则就帮不了你了。如果没有完全正确地完成引脚中断分配可能会很棘手。 仅供参考,v0.9 上的 Mega2560 编译选项完全由用户支持。从默认构建更改内容时可能会出现错误。在 Grbl v1.1 成熟之前,我将只提供对 v1.0+ Mega 版本的有限支持,并且我将新内容移植到 Mega 分支中。 |
没问题,http: |
@kyjak: 我看了一下。您可能想检查您的 PORTE 引脚是否有引脚更改中断。看起来不像,但话又说回来,我只是看了一眼数据表。 您还定义了一个 PORTE 引脚两次来做两件不同的事情。 |
好吧,根据规范[不是专家],我假设“/INTx”表示中断可用性。或者? 更正:感谢 Chamnit,作为参考和其他人,需要 PIN CHANGE INT,在引脚映射中别名为“PCINT”。我会尝试重新接线并发布进度,再次感谢线索! |
@109JB 那里没有那个上限的原因是什么? |
我想不会需要它,但感觉我过去有一些噪音问题,我最终选择在那里设置一个上限以避免任何浮动,到目前为止再也没有错误触发 |
深入研究数据表有所帮助,使用端口 K 进行限制,PCIE2,感谢你们,我现在了解它是如何工作的。接线探头和控件后,如果有人感兴趣,我将在网上发布诀窍。不确定此设置是否与新的 GRBL 兼容,可能 RAMPS 是否兼容是个问题。 |
kyjak 评论 on 3 Nov 2016 •
我将限位开关设置为常闭 NC,
CPU 映射定义如下。我的问题是在查看详细输出时,
我将限位开关标志清除为 000,当我按下开关时,它有效地变为“1”。
但是,在运行 gcode 时,按下开关不会触发任何操作。
它应该暂停/中断执行,但没有任何反应,知道这是否是
代码中的错误?
$5=1
$21=1
#define LIMIT_DDR DDRC
#define LIMIT_PIN PINC
#define LIMIT_PORT PORTC
#define X_LIMIT_BIT 6 // 百万数字引脚 31
#define Y_LIMIT_BIT 5 // 百万数字引脚 32
#define Z_LIMIT_BIT 4 // 百万数字引脚 33
#define LIMIT_INT PCIE0 // 引脚变化中断使能引脚
#define LIMIT_INT_vect PCINT0_vect
#define LIMIT_PCMSK PCMSK0 // 引脚变化中断寄存器
#define LIMIT_MASK ((1<<X_LIMIT_BIT)|(1<<Y_LIMIT_BIT)|(1<<Z_LIMIT_BIT)) // 所有限制位