开源改变世界

grblshield 的变化 #12

推推 grbl 2年前 (2023-01-21) 287次浏览

对话

grblshield 的变化 #12

泗门、

我不确定我这样做是否正确,因为我在边缘工作但它推回了主人。我还在习惯github。

不管怎样,我做了一些改变并测试了它们——它们在 Uno 和 grblshield v3 上工作(你有一个 v2 来了——如果还没有的话)。变化是:

  • 修复了 protocol.c 中的字符混淆(2 行代码)
  • 在 steppers.c/.h 中将步进器启用更改为活动 LO
  • 将默认反转掩码更改为 0x1C 以支持有源 LO 步进驱动器

对不起,如果我搞砸了推/拉请求。我将不得不检查如何推到边缘(当我从 master 分叉和克隆时)。我可能需要克隆边缘。

grblshield 的变化 #12
成员

我已将您的修改分成这两个补丁:

simen/grbl@ c2aec12
simen/grbl@ a25812f

grblshield 的变化 #12 simen 关闭了这个 2011 年 5 月 31 日
grblshield 的变化 #12

泗门、

很高兴您重新上线!房子怎么样?

补丁看起来不错。我在协议模块中还做了一个修复,以适应我遇到的字符接收错误:

void protocol_process()
{ // 修复字符读取错误 /@grblshield@/
unsigned char c; // 更改为 unsigned char 以处理 -1 条件
while((c = serialRead()) != (unsigned char)-1) // cast
{…

if((char_counter > 0) && ((c == ‘ \n’) || (c == ‘\r’))) { // 行已完成。然后执行!
行[字符计数器] = 0;// 处理字符串
status_message(protocol_execute_line(line));
字符计数器 = 0;// 重置行缓冲区索引
} else if (c <= ‘ ‘) { // 丢弃空白和控制字符
} else if (c >= ‘a’ && c <= ‘z’) { // Upcase lowercase
line[ char_counter++] = c-‘a’+’A’;
} else {
line[char_counter++] = c;
}
}
}

一些新闻。我将 TinyG 从 4 个独立定时器改回使用 DDA。事实证明,这种方法根本行不通,因为计时中的任何错误都是累积的,如果轴彼此不同步,最终会导致电机高速失速。所以回到 DDA。

我对 DDA 算法进行了一些改进,允许在子步骤级别进行非常精细的插值。有点像 DDA 级别的微步进。我也在计算超频率以尽量减少插值误差。我正在对此进行最后的润色,但应该在本周完成。

奥尔登

grblshield 的变化 #12
成员

房子很好。我们甚至还有一些家具和餐具!虽然还没有研讨会,所以我无法测试超出逻辑分析仪所能看到的任何东西(不多!)。

我看到了 protocol_process 的变化,但我推迟了它,因为我不完全理解它背后的原因——而且因为串行模块实际上返回一个带符号的 int(!) 所以代码对我来说似乎有点“正确”(或者在至少正确地引入了一个逻辑反错误来反击库中的设计错误)。我知道我偷来的串行模块又旧又不稳定,因此我决定完全更换它——所以我决定开始这样做,然后修复这部分。

或者你能向我解释一下这段代码与我原来的代码有何不同吗?这不就是另一种写同样东西(在二进制级别)但具有更逻辑类型的方法吗?

grblshield 的变化 #12

我必须回过头来看看我做了什么才能确定,但​​这是我记得的。

当我使用 AVRstudio 版本 4(使用 gcc libc v1.6.7)编译时,原始形式的代码失败了。原始代码没有检测到返回的 -1。我认为通过调用它 unsigned char 它知道可能的 0xFF 作为有效的 ASCII 返回值,而不是忽略它认为是代字号 (0x7F)。-1 转换是为了确保每个人仍然占用 8 位,而不是更多。

我可能有部分错误,但我认为这就是正在发生的事情。

我希望你不会去新的 C++ 连线系列。我不是 C++ 的忠实粉丝,我的开发环境也不支持它 :(。我知道你将它用于 Twister。

请随意使用我通过 TinyG 发送给您的任何 XIO 代码。它实现了一个非常完整的 stdio 系统,仅在 Atmel 设备上表现得像 Unix。我会很快将所有内容发布在 github 上,但如果您需要更新,请告诉我。

奥尔登

grblshield 的变化 #12
成员

好的,谢谢你的详细信息。我会调查一下。我绝对不会
在这个项目上使用 c++(grbl 的最初动机是
“用 C 编写一些有用的东西”),我只是确认新
库和旧库一样混乱,只是稍微 c++化了
形式. 我将坚持使用相同的基本 API,但
按照您建议的方式简化环形缓冲区实现(递减,而不是
模数递增)并添加中断驱动的缓冲传输并
在数据上使用 uint8_t 而不是 char。
(如果客户碰巧知道串行数据是什么,他们总是可以转换为 char。)

有趣的细节:当我为 twister 将 grbl 移植到 c++ 时,编译后的
代码实际上变小了。我认为这是因为我不知道我
应该在 C 中声明私有函数静态(谢谢),但也可能
表明在 gcc 中有一个更发达的 c++ 优化器。无论如何,这
让我感到惊讶。那就是说我真的很讨厌 C++,
但它有它的用途。

在 2011 年 5 月 31 日星期二,aldenhart
reply@reply.github.com
写道:

我必须回过头来看看我做了什么才能确定,但​​这是我记得的。

当我使用 AVRstudio 版本 4(使用 gcc libc v1.6.7)编译时,原始形式的代码失败了。原始代码没有检测到返回的 -1。我认为通过调用它 unsigned char 它知道可能的 0xFF 作为有效的 ASCII 返回值,而不是忽略它认为是代字号 (0x7F)。-1 转换是为了确保每个人仍然占用 8 位,而不是更多。

我可能有部分错误,但我认为这就是正在发生的事情。

我希望你不会去新的 C++ 连线系列。我不是 C++ 的忠实粉丝,我的开发环境也不支持它 :(。我知道你将它用于 Twister。

请随意使用我通过 TinyG 发送给您的任何 XIO 代码。它实现了一个非常完整的 stdio 系统,仅在 Atmel 设备上表现得像 Unix。我会很快将所有内容发布在 github 上,但如果您需要更新,请告诉我。

奥尔登

2011 年 5 月 31 日中午 12:23,simen 写道:

房子很好。我们甚至还有一些家具和餐具!虽然还没有研讨会,所以我无法测试超出逻辑分析仪所能看到的任何东西(不多!)。

我看到了 protocol_process 的变化,但我推迟了它,因为我不完全理解它背后的原因——而且因为串行模块实际上返回一个带符号的 int(!) 所以代码对我来说似乎有点“正确”(或者在至少正确地引入了一个逻辑反错误来反击库中的设计错误)。我知道我偷来的串行模块又旧又不稳定,因此我决定完全更换它——所以我决定开始这样做,然后修复这部分。

或者你能向我解释一下这段代码与我原来的代码有何不同吗?这不就是另一种写同样东西(在二进制级别)但具有更逻辑类型的方法吗?

直接回复此邮件或在 GitHub 上查看:
https ://github.com/simen/grbl/pull/12#issuecomment-1268197

直接回复此邮件或在 GitHub 上查看:
https ://github.com/simen/grbl/pull/12#issuecomment-1268789

grblshield 的变化 #12

您可能需要 XIO 代码中的许多代码,即使您不需要或不需要它们。让我做一个简短的清理,并将其放在 github 上,就像我几个月来一直想做的那样。

奥尔登

2011 年 5 月 31 日下午 2:41,simen 写道:

好的,谢谢你的详细信息。我会调查一下。我绝对不会
在这个项目上使用 c++(grbl 的最初动机是
“用 C 编写一些有用的东西”),我只是确认新
库和旧库一样混乱,只是稍微 c++化了
形式. 我将坚持使用相同的基本 API,但
按照您建议的方式简化环形缓冲区实现(递减,而不是
模数递增)并添加中断驱动的缓冲传输并
在数据上使用 uint8_t 而不是 char。
(如果客户碰巧知道串行数据是什么,他们总是可以转换为 char。)

有趣的细节:当我为 twister 将 grbl 移植到 c++ 时,编译后的
代码实际上变小了。我认为这是因为我不知道我
应该在 C 中声明私有函数静态(谢谢),但也可能
表明在 gcc 中有一个更发达的 c++ 优化器。无论如何,这
让我感到惊讶。那就是说我真的很讨厌 C++,
但它有它的用途。

在 2011 年 5 月 31 日星期二,aldenhart
reply@reply.github.com
写道:

我必须回过头来看看我做了什么才能确定,但​​这是我记得的。

当我使用 AVRstudio 版本 4(使用 gcc libc v1.6.7)编译时,原始形式的代码失败了。原始代码没有检测到返回的 -1。我认为通过调用它 unsigned char 它知道可能的 0xFF 作为有效的 ASCII 返回值,而不是忽略它认为是代字号 (0x7F)。-1 转换是为了确保每个人仍然占用 8 位,而不是更多。

我可能有部分错误,但我认为这就是正在发生的事情。

我希望你不会去新的 C++ 连线系列。我不是 C++ 的忠实粉丝,我的开发环境也不支持它 :(。我知道你将它用于 Twister。

请随意使用我通过 TinyG 发送给您的任何 XIO 代码。它实现了一个非常完整的 stdio 系统,仅在 Atmel 设备上表现得像 Unix。我会很快将所有内容发布在 github 上,但如果您需要更新,请告诉我。

奥尔登

2011 年 5 月 31 日中午 12:23,simen 写道:

房子很好。我们甚至还有一些家具和餐具!虽然还没有研讨会,所以我无法测试超出逻辑分析仪所能看到的任何东西(不多!)。

我看到了 protocol_process 的变化,但我推迟了它,因为我不完全理解它背后的原因——而且因为串行模块实际上返回一个带符号的 int(!) 所以代码对我来说似乎有点“正确”(或者在至少正确地引入了一个逻辑反错误来反击库中的设计错误)。我知道我偷来的串行模块又旧又不稳定,因此我决定完全更换它——所以我决定开始这样做,然后修复这部分。

或者你能向我解释一下这段代码与我原来的代码有何不同吗?这不就是另一种写同样东西(在二进制级别)但具有更逻辑类型的方法吗?

直接回复此邮件或在 GitHub 上查看:
https ://github.com/simen/grbl/pull/12#issuecomment-1268197

直接回复此邮件或在 GitHub 上查看:
https ://github.com/simen/grbl/pull/12#issuecomment-1268789

直接回复此邮件或在 GitHub 上查看:
https ://github.com/simen/grbl/pull/12#issuecomment-1269174

grblshield 的变化 #12
成员

无论哪种方式,我都会喜欢。谢谢!

2011 年 5 月 31 日星期二晚上 9:21,aldenhart
reply@reply.github.com
写道:

您可能需要 XIO 代码中的许多代码,即使您不需要或不需要它们。让我做一个简短的清理,并将其放在 github 上,就像我几个月来一直想做的那样。

奥尔登

2011 年 5 月 31 日下午 2:41,simen 写道:

好的,谢谢你的详细信息。我会调查一下。我绝对不会
在这个项目上使用 c++(grbl 的最初动机是
“用 C 编写一些有用的东西”),我只是确认新
库和旧库一样混乱,只是稍微 c++化了
形式. 我将坚持使用相同的基本 API,但
按照您建议的方式简化环形缓冲区实现(递减,而不是
模数递增)并添加中断驱动的缓冲传输并
在数据上使用 uint8_t 而不是 char。
(如果客户碰巧知道串行数据是什么,他们总是可以转换为 char。)

有趣的细节:当我为 twister 将 grbl 移植到 c++ 时,编译后的
代码实际上变小了。我认为这是因为我不知道我
应该在 C 中声明私有函数静态(谢谢),但也可能
表明在 gcc 中有一个更发达的 c++ 优化器。无论如何,这
让我感到惊讶。那就是说我真的很讨厌 C++,
但它有它的用途。

在 2011 年 5 月 31 日星期二,aldenhart
reply@reply.github.com
写道:

我必须回过头来看看我做了什么才能确定,但​​这是我记得的。

当我使用 AVRstudio 版本 4(使用 gcc libc v1.6.7)编译时,原始形式的代码失败了。原始代码没有检测到返回的 -1。我认为通过调用它 unsigned char 它知道可能的 0xFF 作为有效的 ASCII 返回值,而不是忽略它认为是代字号 (0x7F)。-1 转换是为了确保每个人仍然占用 8 位,而不是更多。

我可能有部分错误,但我认为这就是正在发生的事情。

我希望你不会去新的 C++ 连线系列。我不是 C++ 的忠实粉丝,我的开发环境也不支持它 :(。我知道你将它用于 Twister。

请随意使用我通过 TinyG 发送给您的任何 XIO 代码。它实现了一个非常完整的 stdio 系统,仅在 Atmel 设备上表现得像 Unix。我会很快将所有内容发布在 github 上,但如果您需要更新,请告诉我。

奥尔登

2011 年 5 月 31 日中午 12:23,simen 写道:

房子很好。我们甚至还有一些家具和餐具!虽然还没有研讨会,所以我无法测试超出逻辑分析仪所能看到的任何东西(不多!)。

我看到了 protocol_process 的变化,但我推迟了它,因为我不完全理解它背后的原因——而且因为串行模块实际上返回一个带符号的 int(!) 所以代码对我来说似乎有点“正确”(或者在至少正确地引入了一个逻辑反错误来反击库中的设计错误)。我知道我偷来的串行模块又旧又不稳定,因此我决定完全更换它——所以我决定开始这样做,然后修复这部分。

或者你能向我解释一下这段代码与我原来的代码有何不同吗?这不就是另一种写同样东西(在二进制级别)但具有更逻辑类型的方法吗?

直接回复此邮件或在 GitHub 上查看:
https ://github.com/simen/grbl/pull/12#issuecomment-1268197

直接回复此邮件或在 GitHub 上查看:
https ://github.com/simen/grbl/pull/12#issuecomment-1268789

直接回复此邮件或在 GitHub 上查看:
https ://github.com/simen/grbl/pull/12#issuecomment-1269174

直接回复此邮件或在 GitHub 上查看:
https ://github.com/simen/grbl/pull/12#issuecomment-1269464

grblshield 的变化 #12

你睡觉吗?现在在奥斯陆几点钟了?

奥尔登

2011 年 5 月 31 日下午 3:32,simen 写道:

无论哪种方式,我都会喜欢。谢谢!

2011 年 5 月 31 日星期二晚上 9:21,aldenhart
reply@reply.github.com
写道:

您可能需要 XIO 代码中的许多代码,即使您不需要或不需要它们。让我做一个简短的清理,并将其放在 github 上,就像我几个月来一直想做的那样。

奥尔登

2011 年 5 月 31 日下午 2:41,simen 写道:

好的,谢谢你的详细信息。我会调查一下。我绝对不会
在这个项目上使用 c++(grbl 的最初动机是
“用 C 编写一些有用的东西”),我只是确认新
库和旧库一样混乱,只是稍微 c++化了
形式. 我将坚持使用相同的基本 API,但
按照您建议的方式简化环形缓冲区实现(递减,而不是
模数递增)并添加中断驱动的缓冲传输并
在数据上使用 uint8_t 而不是 char。
(如果客户碰巧知道串行数据是什么,他们总是可以转换为 char。)

有趣的细节:当我为 twister 将 grbl 移植到 c++ 时,编译后的
代码实际上变小了。我认为这是因为我不知道我
应该在 C 中声明私有函数静态(谢谢),但也可能
表明在 gcc 中有一个更发达的 c++ 优化器。无论如何,这
让我感到惊讶。那就是说我真的很讨厌 C++,
但它有它的用途。

在 2011 年 5 月 31 日星期二,aldenhart
reply@reply.github.com
写道:

我必须回过头来看看我做了什么才能确定,但​​这是我记得的。

当我使用 AVRstudio 版本 4(使用 gcc libc v1.6.7)编译时,原始形式的代码失败了。原始代码没有检测到返回的 -1。我认为通过调用它 unsigned char 它知道可能的 0xFF 作为有效的 ASCII 返回值,而不是忽略它认为是代字号 (0x7F)。-1 转换是为了确保每个人仍然占用 8 位,而不是更多。

我可能有部分错误,但我认为这就是正在发生的事情。

我希望你不会去新的 C++ 连线系列。我不是 C++ 的忠实粉丝,我的开发环境也不支持它 :(。我知道你将它用于 Twister。

请随意使用我通过 TinyG 发送给您的任何 XIO 代码。它实现了一个非常完整的 stdio 系统,仅在 Atmel 设备上表现得像 Unix。我会很快将所有内容发布在 github 上,但如果您需要更新,请告诉我。

奥尔登

2011 年 5 月 31 日中午 12:23,simen 写道:

房子很好。我们甚至还有一些家具和餐具!虽然还没有研讨会,所以我无法测试超出逻辑分析仪所能看到的任何东西(不多!)。

我看到了 protocol_process 的变化,但我推迟了它,因为我不完全理解它背后的原因——而且因为串行模块实际上返回一个带符号的 int(!) 所以代码对我来说似乎有点“正确”(或者在至少正确地引入了一个逻辑反错误来反击库中的设计错误)。我知道我偷来的串行模块又旧又不稳定,因此我决定完全更换它——所以我决定开始这样做,然后修复这部分。

或者你能向我解释一下这段代码与我原来的代码有何不同吗?这不就是另一种写同样东西(在二进制级别)但具有更逻辑类型的方法吗?

直接回复此邮件或在 GitHub 上查看:
https ://github.com/simen/grbl/pull/12#issuecomment-1268197

直接回复此邮件或在 GitHub 上查看:
https ://github.com/simen/grbl/pull/12#issuecomment-1268789

直接回复此邮件或在 GitHub 上查看:
https ://github.com/simen/grbl/pull/12#issuecomment-1269174

直接回复此邮件或在 GitHub 上查看:
https ://github.com/simen/grbl/pull/12#issuecomment-1269464

直接回复此邮件或在 GitHub 上查看:
https ://github.com/simen/grbl/pull/12#issuecomment-1269525

grblshield 的变化 #12
成员

呵呵。现在是 22:05。我和我最小的儿子在家(斯堪的纳维亚
陪产假是几个月又一个月)所以我从
早上 7 点开始就断断续续——这是我第一天允许
自己进行娱乐性编码、发推特和 githubbing 等等那些
奢侈品,所以我还要再花几个小时:-)

2011 年 5 月 31 日星期二晚上 10:03,aldenhart
reply@reply.github.com
写道:

你睡觉吗?现在在奥斯陆几点钟了?

奥尔登

2011 年 5 月 31 日下午 3:32,simen 写道:

无论哪种方式,我都会喜欢。谢谢!

2011 年 5 月 31 日星期二晚上 9:21,aldenhart
reply@reply.github.com
写道:

您可能需要 XIO 代码中的许多代码,即使您不需要或不需要它们。让我做一个简短的清理,并将其放在 github 上,就像我几个月来一直想做的那样。

奥尔登

2011 年 5 月 31 日下午 2:41,simen 写道:

好的,谢谢你的详细信息。我会调查一下。我绝对不会
在这个项目上使用 c++(grbl 的最初动机是
“用 C 编写一些有用的东西”),我只是确认新
库和旧库一样混乱,只是稍微 c++化了
形式. 我将坚持使用相同的基本 API,但
按照您建议的方式简化环形缓冲区实现(递减,而不是
模数递增)并添加中断驱动的缓冲传输并
在数据上使用 uint8_t 而不是 char。
(如果客户碰巧知道串行数据是什么,他们总是可以转换为 char。)

有趣的细节:当我为 twister 将 grbl 移植到 c++ 时,编译后的
代码实际上变小了。我认为这是因为我不知道我
应该在 C 中声明私有函数静态(谢谢),但也可能
表明在 gcc 中有一个更发达的 c++ 优化器。无论如何,这
让我感到惊讶。那就是说我真的很讨厌 C++,
但它有它的用途。

在 2011 年 5 月 31 日星期二,aldenhart
reply@reply.github.com
写道:

我必须回过头来看看我做了什么才能确定,但​​这是我记得的。

当我使用 AVRstudio 版本 4(使用 gcc libc v1.6.7)编译时,原始形式的代码失败了。原始代码没有检测到返回的 -1。我认为通过调用它 unsigned char 它知道可能的 0xFF 作为有效的 ASCII 返回值,而不是忽略它认为是代字号 (0x7F)。-1 转换是为了确保每个人仍然占用 8 位,而不是更多。

我可能有部分错误,但我认为这就是正在发生的事情。

我希望你不会去新的 C++ 连线系列。我不是 C++ 的忠实粉丝,我的开发环境也不支持它 :(。我知道你将它用于 Twister。

请随意使用我通过 TinyG 发送给您的任何 XIO 代码。它实现了一个非常完整的 stdio 系统,仅在 Atmel 设备上表现得像 Unix。我会很快将所有内容发布在 github 上,但如果您需要更新,请告诉我。

奥尔登

2011 年 5 月 31 日中午 12:23,simen 写道:

房子很好。我们甚至还有一些家具和餐具!虽然还没有研讨会,所以我无法测试超出逻辑分析仪所能看到的任何东西(不多!)。

我看到了 protocol_process 的变化,但我推迟了它,因为我不完全理解它背后的原因——而且因为串行模块实际上返回一个带符号的 int(!) 所以代码对我来说似乎有点“正确”(或者在至少正确地引入了一个逻辑反错误来反击库中的设计错误)。我知道我偷来的串行模块又旧又不稳定,因此我决定完全更换它——所以我决定开始这样做,然后修复这部分。

或者你能向我解释一下这段代码与我原来的代码有何不同吗?这不就是另一种写同样东西(在二进制级别)但具有更逻辑类型的方法吗?

直接回复此邮件或在 GitHub 上查看:
https ://github.com/simen/grbl/pull/12#issuecomment-1268197

直接回复此邮件或在 GitHub 上查看:
https ://github.com/simen/grbl/pull/12#issuecomment-1268789

直接回复此邮件或在 GitHub 上查看:
https ://github.com/simen/grbl/pull/12#issuecomment-1269174

直接回复此邮件或在 GitHub 上查看:
https ://github.com/simen/grbl/pull/12#issuecomment-1269464

直接回复此邮件或在 GitHub 上查看:
https ://github.com/simen/grbl/pull/12#issuecomment-1269525

直接回复此邮件或在 GitHub 上查看:
https ://github.com/simen/grbl/pull/12#issuecomment-1269729

ashelly 将提交推送到引用此拉取请求的 ashelly/grbl 2015 年 5 月 22 日

免费注册 在 GitHub 上加入此对话。已有帐户? 登录评论
标签
还没有
项目

还没有

发展

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

还没有

2名参加者
grblshield 的变化 #12grblshield 的变化 #12

喜欢 (0)