开源改变世界

修复了小错误。 #200

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

对话

修复了小错误。 #200
贡献者

函数 eeprom_put_char 的参数与 .h 文件不一致。
gcode.c 还有一个超出范围的变量。

Protoneer 添加了2 个提交 10年前
修复了小错误。 #200
成员

谢谢!你是对的,eeprom_put_char() 参数不对齐,但看起来 memcpy_to_eeprom_with_checksum() 函数调用也不兼容。那些正在发送无符号字符。我认为它可能需要保留为无符号字符,只需更改 .h 文件即可关联。不是 100% 确定,但我认为这是应该的方式。

至于你的gcode.c,把它放在那里有什么问题吗?我把那个新变量分配放在那里的理论是,当解析器没有调用该函数的特定部分时,它不会用完内存空间。不确定它是否以这种方式工作,但这是希望。你知道有什么方法可以让它表现得像这样并保持在范围内吗?

Protoneer 添加了2 个提交 10年前
修复了小错误。 #200
贡献者作者

对…我按照您的建议修复了头文件。

修复了小错误。 #200
贡献者作者

关于 gcode.c 更改…我正在使用 Arduino IDE 中的代码,它无法访问 switch 语句的其余部分(超出范围)中的变量。

我们如何通过使用 if 语句而不是变量一起摆脱变量?

  float coord_data[N_AXIS];
  if (non_modal_action == NON_MODAL_GO_HOME_1) 
  { 
    if (!settings_read_coord_data(SETTING_INDEX_G30 ,coord_data)) { return(STATUS_SETTING_READ_FAIL); }     
  }
  else
  {
    if (!settings_read_coord_data(SETTING_INDEX_G28 ,coord_data)) { return(STATUS_SETTING_READ_FAIL); }     
  }
  mc_line(coord_data[X_AXIS], coord_data[Y_AXIS], coord_data[Z_AXIS], settings.default_seek_rate, false); 
  memcpy(gc.position, coord_data, sizeof(coord_data)); // gc.position[] = coord_data[];
  axis_words = 0; // Axis words used. Lock out from motion modes by clearing flags.
  break;
case NON_MODAL_SET_HOME_0: case NON_MODAL_SET_HOME_1:
  if (non_modal_action == NON_MODAL_SET_HOME_1) 
  { 
    settings_write_coord_data(SETTING_INDEX_G30,gc.position);
  }
  else
  {
    settings_write_coord_data(SETTING_INDEX_G28,gc.position);
  }
  break;
修复了小错误。 #200
成员

当然。那行得通。:)

修复了小错误。 #200
贡献者作者

很好…我已经更新了代码。谢谢你的帮助。

camnit 添加了一个引用此拉取请求的提交 2013 年 3 月 13 日

修复了小错误。 #200 chamnit 合并提交cdcb426 到 grbl :主人 2013 年 3 月 13 日
免费注册 在 GitHub 上加入此对话。已有帐户? 登录评论
标签
还没有
项目

还没有

发展

成功合并此拉取请求可能会关闭这些问题。

还没有

2名参加者
修复了小错误。 #200修复了小错误。 #200

喜欢 (0)