开源改变世界

添加将 EEPROM 清除为默认值的方法 #773

推推 grbl 3年前 (2023-01-22) 91次浏览

关闭
J-Dunn 打开了这个问题 2015 年 7 月 27 日 · 4条评论
关闭

添加将 EEPROM 清除为默认值的方法#773

J-Dunn 打开了这个问题 2015 年 7 月 27 日 · 4条评论

注释

添加将 EEPROM 清除为默认值的方法 #773

https://github.com/grbl/grbl/wiki/Frequently-Asked-Questions

FAQ 提供了一些解决方案,用于将 EEPROM 清除为源代码中定义的 GRBL 默认值。但是,由于校验和失败情况下的代码已经存在,对于更多的几个字节,如果包含它会好得多。

我在 system.c 中添加了一个额外的“案例”来通过新的 $E 命令执行此操作:

        case 'E' : // clear EEPROM
           if ( line[++char_counter] != 0 ) { 
              return(STATUS_INVALID_STATEMENT); 
           }
             else { settings_init(0); }
           break; 

        case 'H' : // Perform homing cycle [IDLE/ALARM]
          if (bit_istrue(settings.flags,BITFLAG_HOMING_ENABLE)) { 
            // Only perform homing if Grbl is idle or lost.
            mc_homing_cycle(); 
            if (!sys.abort) { system_execute_startup(line); } // Execute startup scripts after successful homing.
          } else { return(STATUS_SETTING_DISABLED); }
          break;

它涉及在settings_init()中添加一个参数并用零调用它以清除EEPROM;唯一的另一个调用来自 main,它现在需要一个非零值 (1)

设置.c

// Initialize the config subsystem
// option==0 restores GRBL defaults, replacing used defined values in EEPROM
void settings_init(uint8_t option) {
  if ( (option==0) || (!read_global_settings()) ) {
    report_status_message(STATUS_SETTING_READ_FAIL);

可能有比 $E 更好的建议,至少最好测试第二个字符 $EE 以避免吞噬所有将来可能有用的字母。

它使一个容易记忆的助记符“擦除EEPROM”。

该实施有任何问题吗?

添加将 EEPROM 清除为默认值的方法 #773
成员

@J-Dunn: Grbl v0.9j 有一个 EEPROM 清除和恢复默认命令。有关详细信息,请参阅 Wiki 配置页面。

添加将 EEPROM 清除为默认值的方法 #773
作者

谢谢,
https://github.com/grbl/grbl/wiki/Configuring-Grbl-v0.9
“这些命令未在主要 Grbl $ 帮助消息中列出,但可用于允许用户恢复部分或全部Grbl 的 EEPROM 数据。”

然后将它们添加到 GRBL 命令列表以及更正明确指出此功能不存在的常见问题解答可能会有所帮助。我厌倦了 GRBL 的帮助,但一无所获,所以我来这里是想看看这是否可行,一旦我在常见问题解答中读到它,我就停止阅读并开始编写代码。

我敢肯定这是一个简单的疏忽。

添加将 EEPROM 清除为默认值的方法 #773
成员

不是疏忽。正如维基页面所述,这是故意的。程序字符串占用了大量宝贵的闪存空间。

常见问题解答在我发布最后一条消息几分钟后更新。

添加将 EEPROM 清除为默认值的方法 #773
作者

监督评论与常见问题解答有关。感谢您修复它。

0.9j 是尚未发布的慢跑版本,对吗?

喜欢 (0)