5iMX.com 我爱模型 玩家论坛 ——专业遥控模型和无人机玩家论坛(玩模型就上我爱模型,创始于2003年)

标题: 关于ESC32源代码的疑问 [打印本页]

作者: linuxfans    时间: 2013-9-12 11:23
标题: 关于ESC32源代码的疑问
ESC32的过零点检测是直接通过ADC实现的
adc.c这个文件中,有这么几个变量 avgA, avgB, avgC,没有初始化,而且这几个赋值
        avgA += valA - histA[histIndex];
        avgB += valB - histB[histIndex];
        avgC += valC - histC[histIndex];
histA[histIndex]等也没有初始化过
而且都是+= -=之类的操作,没有直接赋值,与ADC相关,难免有累积误差,不知道运行时间长了会不会出什么问题?

作者: KGy    时间: 2013-9-12 17:59
楼主再分析下,会不会是越累积越精确的。。。

作者: linuxfans    时间: 2013-9-13 09:45
KGy 发表于 2013-9-12 17:59
楼主再分析下,会不会是越累积越精确的。。。

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


作者: dawanpi    时间: 2014-2-18 22:39
会不会是编译器给初始值,楼主有没有焊上SWD接口用ST LINK调试看看?

作者: chengyabcd    时间: 2014-2-19 16:16
KEIL C MDK编译环境,在工程设置里面可以勾选复位后初始化RAM区,也就是说你定义的变量初始值都是0。

作者: kmani    时间: 2014-5-1 20:29
本帖最后由 kmani 于 2014-5-1 20:30 编辑
linuxfans 发表于 2013-9-13 09:45
应该不会吧,因为换相是没有记忆的,感觉最好的情况是相互抵消,但如果有残留并且不巧一直累积就废了

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

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





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

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

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


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

...

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


作者: linuxfans    时间: 2014-5-5 17:37
kmani 发表于 2014-5-5 12:15
是啊,是一种很好的结构。
你有ESC的电路图和代码吗?

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

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


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

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






欢迎光临 5iMX.com 我爱模型 玩家论坛 ——专业遥控模型和无人机玩家论坛(玩模型就上我爱模型,创始于2003年) (http://bbs.5imx.com/) Powered by Discuz! X3.3