开源改变世界

带驱动程序的 GRBL #827

推推 grbl 2年前 (2023-01-23) 197次浏览

关闭
Dave3891 打开了这个问题 2015 年 10 月 23 日 · 6条评论
关闭

带驱动程序的 GRBL#827

Dave3891 打开了这个问题 2015 年 10 月 23 日 · 6条评论

注释

带驱动程序的 GRBL #827

是否可以更改 GRBL 代码以使用驱动程序文件?这将使移植到其他处理器变得容易得多。我认为需要驱动程序功能的部分是定时器中断/设置和串行功能。

带驱动程序的 GRBL #827
成员

@Dave3891: 是的。它计划用于下一个 Grbl 项目。Arduino Uno 的处理器剩余空间有限,将事物抽象为“驱动程序”之类的事物会占用不必要的空间。

带驱动程序的 GRBL #827
作者

这会成为 1.0 的一部分吗?还是更晚的版本?

带驱动程序的 GRBL #827

我认为大多数事情都可以在当前实现中不使用额外的空间来“抽象”。用宏替换当前的硬件访问,将这些宏定义为代码现在执行的操作。然后其他实现可以用其他实现所需的内容替换这些宏

带驱动程序的 GRBL #827
成员

@langwadt:如果您使用的是兼容的 MCU,例如 Mega 或 1280,可以。对于 ARM,这种策略也行不通。但是 FWIW,每当我重新访问一段代码时,我都会尝试隔离硬件级别的调用,以使移植更容易。它正在到达那里,但在您知道自己在做什么之前,我认为这并不容易。

带驱动程序的 GRBL #827

另外,你想要的越通用,宏就越难看:-) 我知道是因为我为 grbl 写了这样一个 HAL,我已经看到它变得多么丑陋。另一方面,使用功能将事物抽象化的效果相当不错——但您只能在具有足够存储空间的平台上提供功能,而 ATmega328P 则没有。

带驱动程序的 GRBL #827

如果需要,没有什么可以阻止您在宏中调用函数。
并且,至少在原则上,内联函数应该与宏一样,但取决于编译器和优化器级别,它并不总是那样工作

喜欢 (0)