5iMX宗旨:分享遥控模型兴趣爱好

5iMX.com 我爱模型 玩家论坛 ——专业遥控模型和无人机玩家论坛(玩模型就上我爱模型,创始于2003年)
查看: 4907|回复: 9
打印 上一主题 下一主题

关于ESC32源代码的疑问

[复制链接]
跳转到指定楼层
楼主
发表于 2013-9-12 11:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ESC32的过零点检测是直接通过ADC实现的
adc.c这个文件中,有这么几个变量 avgA, avgB, avgC,没有初始化,而且这几个赋值
        avgA += valA - histA[histIndex];
        avgB += valB - histB[histIndex];
        avgC += valC - histC[histIndex];
histA[histIndex]等也没有初始化过
而且都是+= -=之类的操作,没有直接赋值,与ADC相关,难免有累积误差,不知道运行时间长了会不会出什么问题?

欢迎继续阅读楼主其他信息

沙发
发表于 2013-9-12 17:59 | 只看该作者
楼主再分析下,会不会是越累积越精确的。。。
3
 楼主| 发表于 2013-9-13 09:45 | 只看该作者
KGy 发表于 2013-9-12 17:59
楼主再分析下,会不会是越累积越精确的。。。

应该不会吧,因为换相是没有记忆的,感觉最好的情况是相互抵消,但如果有残留并且不巧一直累积就废了

4
发表于 2014-2-18 22:39 | 只看该作者
会不会是编译器给初始值,楼主有没有焊上SWD接口用ST LINK调试看看?
5
发表于 2014-2-19 16:16 | 只看该作者
KEIL C MDK编译环境,在工程设置里面可以勾选复位后初始化RAM区,也就是说你定义的变量初始值都是0。
6
发表于 2014-5-1 20:29 | 只看该作者
本帖最后由 kmani 于 2014-5-1 20:30 编辑
linuxfans 发表于 2013-9-13 09:45
应该不会吧,因为换相是没有记忆的,感觉最好的情况是相互抵消,但如果有残留并且不巧一直累积就废了

楼主你好,想请教下,ADC检测换向在电机高速转的时候,误差会比较大,为什么ESC不使用比较器呢,是因为增加了硬件吗?
还有ESC电调里面有检测电机线圈电流吗?

你头像的是一种相当不错的承受竖直压力的结构,是你自己优化出来的吗?




7
 楼主| 发表于 2014-5-5 09:43 | 只看该作者
kmani 发表于 2014-5-1 20:29
楼主你好,想请教下,ADC检测换向在电机高速转的时候,误差会比较大,为什么ESC不使用比较器呢,是因为增 ...

ESC32为什么会那么设计我也不是很清楚,个人猜测这应该也是业界主流的做法吧,尤其是KV不高的情况。

关于头像,是自己随便画的,很久以前一个6轴的机架。莫非误打误撞发生了什么巧合?

8
发表于 2014-5-5 12:15 | 只看该作者
linuxfans 发表于 2014-5-5 09:43
ESC32为什么会那么设计我也不是很清楚,个人猜测这应该也是业界主流的做法吧,尤其是KV不高的情况。

...

是啊,是一种很好的结构。
你有ESC的电路图和代码吗?

9
 楼主| 发表于 2014-5-5 17:37 | 只看该作者
kmani 发表于 2014-5-5 12:15
是啊,是一种很好的结构。
你有ESC的电路图和代码吗?

代码是公开的,直接搜索ESC32就能找到
电路似乎不是开源的,我也没有找到

这个主题的问题其实已经解决了,那几个值会在初始化的时候置为0,然后窗口里会减去窗口前的一个值,加上当前值,所以是窗口内的和(也可以认为是平均值)

10
发表于 2014-5-5 22:43 | 只看该作者
linuxfans 发表于 2014-5-5 17:37
代码是公开的,直接搜索ESC32就能找到
电路似乎不是开源的,我也没有找到

很有用的分享,谢谢楼主了

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

关闭

【站内推荐】上一条 /1 下一条

快速回复 返回顶部 返回列表