开源改变世界

GRBL 0.9j 和 10.d 中的小错误 (settings_restore) #1036

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

关闭
usbcnc 打开了这个问题 2016 年 7 月 4 日 · 1条评论
关闭

GRBL 0.9j 和 10.d 中的小错误 (settings_restore)#1036

usbcnc 打开了这个问题 2016 年 7 月 4 日 · 1条评论

注释

GRBL 0.9j 和 10.d 中的小错误 (settings_restore) #1036

这是在玩WIn32模拟和STM32端口时发现的。 当
EEPROM 中不存在参数时,第一次尝试恢复参数和代码 #endif #if N_STARTUP_LINE > 1 eeprom_put_char(EEPROM_ADDR_STARTUP_BLOCK+(LINE_BUFFER_SIZE+1), 0); #endif }

如果 (restore_flag & SETTINGS_RESTORE_BUILD_INFO) { eeprom_put_char(EEPROM_ADDR_BUILD_INFO, 0); }

将无法正确设置值,并在下次运行时导致另一轮 EEPROM 错误。原因是它的 EEPROM_ADDR_STARTUP_BLOCK 和 EEPROM_ADDR_BUILD_INFO 需要校验和。

我更改的代码是
if (restore_flag & SETTINGS_RESTORE_STARTUP_LINES) {
line[0] = 0;
#if N_STARTUP_LINE > 0
settings_store_startup_line(0,line);
#endif
#if N_STARTUP_LINE > 1
settings_store_startup_line(1,line);
#endif
}

如果 (restore_flag & SETTINGS_RESTORE_BUILD_INFO) { settings_store_build_info(line); }

GRBL 0.9j 和 10.d 中的小错误 (settings_restore) #1036
成员

@usbcnc: 完全忘记了。我通过向 EEPROM 写入额外的 0(校验和值)将此修复应用到 v1.0。

喜欢 (0)