Contact me: hankecnc@gmail.com

更改自定义 atmega328p 板上的引脚配置 #1069

推推 grbl 3年前 (2023-01-23) 345次浏览

关闭
andrevargas22 打开了这个问题 2021 年 9 月 8 日 · 2 条评论
关闭

更改自定义 atmega328p 板上的引脚配置#1069

andrevargas22 打开了这个问题 2021 年 9 月 8 日 · 2 条评论

注释

更改自定义 atmega328p 板上的引脚配置 #1069

你好呀,

所以,我制作了一个带有独立 atmega328p 的定制板,使用 Arduino 引导加载程序运行(它可能不是最佳选择,但我知道如何运行它)。基本上一切都按计划进行。我尝试按照 GRBL 中定义的方式在我的电路板上布置引脚,这样我就不会遇到问题并且我的计划奏效了,步进电机在工作,硬限制在工作。到目前为止一切顺利,世界是美丽的。我正在使用 GRBL v1.1。

然而,我在布线时犯了一个错误,我需要更换一个引脚才能完成我的项目。它来自 cpu_map.h:

//定义洪水和喷雾冷却剂启用输出引脚。
#define COOLANT_FLOOD_DDR DDRC
#define COOLANT_FLOOD_PORT PORTC
#define COOLANT_FLOOD_BIT 3 // Uno 模拟引脚 3

在我的项目中,冷却剂分配给 PORTC1(Uno 模拟引脚 1),所以我的逻辑假设是我应该将位从 3 更改为 1,如下所示:

//定义洪水和喷雾冷却剂启用输出引脚。
#define COOLANT_FLOOD_DDR DDRC
#define COOLANT_FLOOD_PORT PORTC
#define COOLANT_FLOOD_BIT 1

在编译 GRBL 之后,这个引脚开始处于高电平位置,它应该如此,但是当我发送命令 M8 将引脚状态更改为低电平时,GRBL 立即重置并给我 [MSG: Check limits]。

如果我将代码编译为 PIN 3,微控制器按预期工作,M8 和 M9 将 PORTC3 状态从高电平更改为低电平,反之亦然,没有错误。

有谁知道为什么?通过使用 PORTC1,我是否改变了一些我不应该改变的东西?提前致谢。

更改自定义 atmega328p 板上的引脚配置 #1069

检查其他定义以查看该引脚是否已用于其他用途

更改自定义 atmega328p 板上的引脚配置 #1069

我不敢相信我这么瞎。这太明显了,我几乎为自己感到羞愧。

是的,该引脚在其他地方使用,我将其更改为未使用的引脚,现在 PORTC1 可以正常工作了。

谢谢 langwadt,我正在关闭这个问题。

喜欢 (0)