评论
完全消除延迟(参见问题#169)。延迟是不需要的。我确定了范围并检查了数据表。这种延迟(在 isr 内)是一种错误的而非无害的实现。我认为它没有被修复的唯一原因是大多数人不使用 max6675。此问题已在 Teacup 固件中修复。 |
100ns 是 2 个周期,延迟 1ms(而 Arduino 实现很可能会延迟 1 到 2 ms)简直是疯了。我插入了两个“nops”,它们不会损害运行时间,但会影响到 100ns。(我没有时间检查数据表,这是一个巨大的改进) |
我用我的示波器测量了 610 ns 的时序,没有任何 nop 或 我以为我也开始了 TB6560 Marlin 问题?好像忘记了 我正在运行经过修改的 Marlin,对 需要更长时钟脉冲 在 2012 年 12 月 17 日星期一凌晨 4:06,daid notifications@github.com写道:
|
我在某个地方看到了步进器计时的补丁,默认计时也导致我们在 KamerMaker 项目中使用的步进器出现问题。但我不确定补丁去了哪里。 如果在逻辑电源之前施加电机电源,TB6560 驱动器不是会爆炸吗? |
是的,这些是逻辑电源应该在 我使用的步进器修复是保留打开单个 在 2012 年 12 月 17 日星期一上午 11:03,daid notifications@github.com写道:
|
更改在文件 stepper.cpp 中的函数 ISR(TIMER1_COMPA) 中。我对 #define EXTEND_STEP_PULSE_USEC (10) // 修改后的步进器中断为 我正在为挤出机使用 Polulo 驱动器,所以我没有修改挤出机 @@ -453,7 +457,6 @@ ISR(TIMER1_COMPA_vect)
@@ -461,7 +464,6 @@ ISR(TIMER1_COMPA_vect)
@@ -469,7 +471,6 @@ ISR(TIMER1_COMPA_vect)
@@ -483,6 +484,19 @@ ISR(TIMER1_COMPA_vect)
2012 年 12 月 17 日星期一上午 11:44,Jerry Trantow JTrantow@ieee.org写道:
|
这个是大约一年前创建的,有很多变化,请下载最新的 marlin 副本,看看问题是否仍然存在。您还可以使用最新的 arduino IDE 来刷新 marlin 固件。如果您的板文件等只能在旧的 ide 下工作,请先升级它们,以便它们在最新的 IDE 下工作。 如果您为不在https://github.com/ErikZalm/Marlin/tree/Marlin_v1/ArduinoAddons中的硬件创建板文件,请 fork marlin 并添加文件,然后创建一个拉取请求,以便我们可以获得硬件支持的。这也将使人们了解人们正在使用什么硬件。 |
嗨,我使用了一些旧版本的 Marlin 并分离了挤出机加热器控制器,它可以工作。
在切换到较新的 Marling 之后,当我也将它用于加热器控制时,我在初始化/启动期间冻结了。
我的机器是定制设计的,类似于钢型材的 Ultimaker。控制器也是定制的,在 20 MHz 下使用 Atmel ATMega644P,对于挤出机的温度,我使用 Max6675(SPI 连接)。
在 Marling 中,我对板 62(Sanguino)使用修改后的配置,并且必须添加
(
#define MAX_SCK_PIN 7
#define MAX_MISO_PIN 6
#define MAX_MOSI_PIN 5
#define MAX6675_SS 4
}
问题 – 冻结 – 对我来说是通过使用解决的:
delayMicroseconds(1); 而不是在 temperature.cpp 的第 795 行的函数 read_max6675() 中
“确保 100ns 延迟 – 多一点就可以了” (在 延迟(1)之前; 这太长了}
我不知道如何使用 github 来提供/提供补丁,所以请检查这个,并合并“delayMicroseconds(1);” 进入主分支。或者即使您知道是否有某些函数只等待 100ns?
谢谢
动图