对话
乍一看,这看起来很不错。将需要进行测试以确保一切都符合犹太洁食标准。限位功能肯定需要一些 TLC,我喜欢限位开关面罩。 |
谢谢 |
提交f50bf4f的代码(即最后一个)在过去的一个小时里一直在我的 CNC 上愉快地运行老化测试,没有任何故障,其中包括归位功能。 |
很高兴知道。出于某种原因,Github 不会将拉取请求保持静态,并且只要您添加更多提交,它就会添加它们。我们目前不会支持您的伺服电荷泵功能和 _BV 位命令(如果我理解正确的话,这在 avr-gcc 之外是不可移植的)。所以如果我们合并它,我们将不得不挑选它。 |
是的,我看到 Github 没有提供任何方法来“关闭”拉取请求的历史记录,从而告诉上游“我希望你从这里合并到这里,而不是其他任何东西”,伤心:(
电荷泵没问题,我会保留我的叉子并将其用于我使用的 CNC。我打算在其他领域继续帮助该项目(除非你们中的任何人希望我不这样做),例如代码大小(您已经接近 ATmega328p 可以容纳的大小)和数学速度(我在这里看弧线)优化。 感谢您的时间 :) |
如果您发现我们可以进行任何优化,请告诉我们。前段时间我们花了一些时间研究这个,我们可能在这里和那里遗漏了一些东西。非常感谢任何帮助,即使我们可能不会安装它(无论出于何种原因)。 就 _BV() 而言,它似乎是特定于 AVR 的(尽管我可能是错的),我们希望尽可能保持它的可移植性,以防其他人现在或将来采用此代码并将其应用于其他微处理器未来。幸运的是,大多数人都报告说移植 Grbl 是相当无缝的。我们希望保持这种状态。(我们还在开发一个 Grbl 模拟器,它也使用 gcc 来编译现有代码。) |
我不同意移植部分(或者我们正在谈论完全不同的代码库)。此处的代码广泛使用了 AVR 功能,例如定时器、中断和 GPIO 引脚;除了完全重写这些部分之外,没有任何东西可以“移植”到 AVR 以外的任何东西。 |
不确定我们为什么要争论这个问题,因为这可以通过#define 轻松解决。我个人更喜欢通用和通用的位移<<。这是我第一次看到 _BV() 在使用中并且不得不查找它,这是我们希望避免的事情,因为 n00bs 并不总是知道他们在做什么。我并不以任何方式声称自己是微控制器方面的专家,但我被告知,编写尽可能可移植的代码以帮助其面向未来始终是一种很好的做法。有几个 ARM 项目,例如 Arthur 的 Smoothieware,它们是从我们最初的代码库开始的。我认为它们使用不同的编译器,尽管它们可能仍支持 _BV()。无论哪种方式,这都归结为偏好。 |
同意。我现在将关闭它以断开它(即防止我这边的进一步提交破坏这个拉取请求)。随意挑选任何你可能会发现对我的叉子有用的东西(如果有的话)。 |
请参阅下面的提交说明,我已将它们变小(阅读:关于已解决问题的原子性)以使挑选樱桃变得容易。
更大的最终目标是使 grbl 适应半专业 CNC,例如我可以访问并必须工作的 Heiz High-Z S-720 + Zero3 控制器(否则我会被 Windows 困住,它不会算作我的一个选项)。
这组提交确保归巢将按预期工作,并且还允许禁用在所有情况下都不需要的功能。
下一个将处理一个更痛苦的问题:大多数(如果不是全部)控制器需要运行的电荷泵/看门狗(12.5kHz 50% 占空比,方波)信号的生成,其基本原理是用作外部控制器仍然存在的看门狗。
将及时向大家发布!