开源改变世界

探测 #366

推推 grbl 3年前 (2023-01-21) 190次浏览

关闭
henols 打开了这个问题 2014 年 3 月 4 日 · 12条评论
关闭

探测#366

henols 打开了这个问题 2014 年 3 月 4 日 · 12条评论

注释

探测 #366
贡献者

你好。
我试图测试探测功能 (g38.2),但没有成功。

当我尝试运行 g38.2 y40 时,99% 的时间它会崩溃并挂起。
它发生在 motion_control 函数的第 297 行,mc_probe_cycle 正在调用
调用 st_prep_buffer 的 protocol_execute_runtime。

我尝试使用 2 种不同的 aMegas 并尝试减小缓冲区大小但没有任何帮助。

我不知道如何从这里开始,但我愿意投入大量工作来完成这项工作。

亨里克

探测 #366
成员

那很奇怪。你能描述一下它是如何崩溃和挂起的吗?它会立即变得完全没有反应吗?还是一段时间后?

在推送最后一个开发分支代码之前,出于某种原因,我确实不得不在我的两个测试 Unos 上重新烧录我的引导加载程序。不知道为什么。在我这样做之前,它不允许我完成固件的上传。无论如何,我们应该有足够的剩余闪存空间。

探测 #366
贡献者作者

我对引导加载程序没有任何问题。

一旦 G38.2 命令即将被拥有,它就会挂起,我的意思是挂起它完全死了,我必须硬重置它。
它在 st_prep_buffer 中有一些东西。我已将调试代码放在 mc_probe_cycle、protocol_execute_runtime 和 st_prep_buffer 中,但由于 st_prep_buffer 被调用了很多次,所以我无法深入了解它。

探测 #366
成员

@henols: 这很奇怪,因为它在我这边运行良好。你使用什么编译器?我想知道这是否与它有关。

探测 #366
贡献者作者

@chamnit 我使用的是 win-avr 20100110(最新版本)
,你能在某处加载你的十六进制文件吗?我会测试它,看看我的机器中是否有一些垃圾。

探测 #366
成员

@henols: 我已经将它上传到我们的 grbl-builds 仓库。这是链接

探测 #366
贡献者作者

这太奇怪了,我正在尝试你的十六进制,但当我运行 G38.2 z10 时它锁定了同样的东西。
我尝试了第三个 Atmega 相同的结果,我将它连接在面包板上相同的结果。

我不知道如何解决这个问题。

探测 #366
成员

@henols: 唔。也不完全确定发生了什么。它应该工作正常。@robgrz也一直在玩新的探测周期,据我所知,它也一直在为他工作。

要消除引导加载程序和固件以某种方式损坏的可能性,您可以通过 ISCP 和最新的 Arduino IDE 重新刷新引导加载程序吗?我确实记得在某处看到有一个旧的 optiboot 错误可以防止超过 30k 的闪烁(尽管我们还没有)。如果使用预 optiboot 引导加载程序,还有一些关于 328 的最后 4k 的其他互联网噪音可能会被破坏。

另外,您是否使用了任何不寻常的设置?

请记住,如果探测器在到达目的地时未被检测到,探测周期将进入警报模式并锁定所有内容。

探测 #366
贡献者作者

引导加载程序问题,让我们开始吧。谢谢@chamnit

探测 #366
贡献者作者

问题不是引导加载程序,而是我的配置。
默认进给设置为 0。
$13=0.000(默认进给,mm/min)

当我打开引导加载程序时,所有设置都被重置了。

现在我可以进行测试了。

探测 #366
成员

@henols: 出色的!很高兴听到。我会做一个注释以防止用户输入零默认进给率。此外,此设置可能会消失,因为从技术上讲它不应该存在。如果您没有在重置后立即指定进给率,它应该会出错。它被保留下来,使用户更容易上手。不确定它是否真的需要留下来。

探测 #366
成员

@henols:自从您关闭此问题后,我假设探测工作正常?

探测 #366
贡献者作者

它工作正常,但我发现了一些小缺陷。但我会提出一个或两个拉取请求。干得好@robgrz这将是成功的!

喜欢 (0)