Contact me: hankecnc@gmail.com

获取新段后直接设置方向针 #204

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

关闭
Schildkroet 打开了这个问题 2017 年 6 月 5 日 · 2 条评论
关闭

获取新段后直接设置方向针#204

Schildkroet 打开了这个问题 2017 年 6 月 5 日 · 2 条评论

注释

获取新段后直接设置方向针 #204

嗨,
我不确定这个问题是否仍然与新的 HAL 相关,但我仍然想解决它。

在 stepper.c 的第 313 行:
// Set the direction pins a couple of nanoseconds before we step the steppers
DIRECTION_PORT = (DIRECTION_PORT & ~DIRECTION_MASK) | (st.dir_outbits & DIRECTION_MASK);

方向引脚在步进器之前仅设置几个 ns(ARM 上的时钟更高,这将更短的时间),但是一些步进器驱动器要求信号在步进之前稳定一段时间(例如 5us)。这可能会导致向错误的方向迈出 1 步。

所以最好在第 355 行获取新段后直接更新方向引脚:
st.dir_outbits = st.exec_block->direction_bits ^ dir_port_invert_mask;
// Update direction...

制造商

获取新段后直接设置方向针 #204

它会工作并节省几个周期,它不会工作定义 STEP_PULSE_DELAY 尽管可能无论如何都可以删除

获取新段后直接设置方向针 #204
贡献者

整个步进驱动器已经抽象出来了。由端口来为其所在的处理器实现最佳效果。

喜欢 (0)