hbkdcc 发表于 2009-3-11 20:08:47

关于德国人无刷电调程序的问题?

请问哪位高手能告诉我一下德国人BLMC.c程序中的sense、ZeitZumAdWandeln、CntKommutierungen是什么意思吗?

rei1984 发表于 2009-3-11 22:44:14

google 翻译一下就知道了

德国人的程序写的还可以,就是条理需要自己理一下。直接烧hex也可以的,因为硬件都是仿照的

hbkdcc 发表于 2009-3-11 23:37:50

一楼的,我的意思不是光知道字符的意思,而是想知道其在程序中的作用,我现在正在做基于ARM Cortex-M3的无刷电调,想参考一下德国人的这个程序,我没学过AVR,程序有的地方不太懂,所以想大家一起分析一下。我现在已经开环同步状态成功了,闭环的总是失败。

hbkdcc 发表于 2009-3-17 21:44:11

http://cache.amobbs.com/bbs_upload782111/files_13/ourdev_426141.jpg
开环启动算法 (原文件名:开环启动算法.jpg)

http://cache.amobbs.com/bbs_upload782111/files_13/ourdev_426142.jpg
模拟比较器0中断服务函数 (原文件名:模拟比较器0中断服务函数.jpg)

http://cache.amobbs.com/bbs_upload782111/files_13/ourdev_426143.jpg
模拟比较器1中断服务函数 (原文件名:模拟比较器1中断服务函数.jpg)

http://cache.amobbs.com/bbs_upload782111/files_13/ourdev_426144.jpg
模拟比较器2中断服务函数 (原文件名:模拟比较器2中断服务函数.jpg)

hbkdcc 发表于 2009-3-17 21:45:47

现在能同步启动,但是不能并入闭环,用的是ARM Cortex-M3内核的LM3S1138

rei1984 发表于 2009-3-17 22:38:31

我个人觉得和mcu没关系吧?

用的都是c语言,我m3没用过,你可以看一下德国人的比较器中断里面的语句。你的流程图有点乱,看不太明白

hbkdcc 发表于 2009-3-18 09:21:55

回复5楼:我因为没学过AVR所以德国人的程序没太看懂,其中if(SENSE_H) sense = 1; else sense = 0;中的SENSE_H和sense各代表什么?为什么SENSE_FALLING_INT;SENSE_B; 两句的顺序和其他的不一样,比如SENSE_A; SENSE_RISING_INT;?

hbkdcc 发表于 2009-3-18 15:05:59

http://cache.amobbs.com/bbs_upload782111/files_13/ourdev_426323.jpg
(原文件名:A相和虚拟中性点1.jpg)

http://cache.amobbs.com/bbs_upload782111/files_13/ourdev_426324.jpg
(原文件名:A相和虚拟中性点2.jpg)

http://cache.amobbs.com/bbs_upload782111/files_13/ourdev_426325.jpg
(原文件名:A相.jpg)

http://cache.amobbs.com/bbs_upload782111/files_13/ourdev_426326.jpg
(原文件名:虚拟中性点1.jpg)

http://cache.amobbs.com/bbs_upload782111/files_13/ourdev_426327.jpg
(原文件名:虚拟中性点2.jpg)

hbkdcc 发表于 2009-3-18 15:09:08

传了几张开环时的波形图,没加PWM是直通的,大家帮忙看看有没有问题,开环不加速也可以平稳运行

rei1984 发表于 2009-3-18 15:57:58

to LZ你的开环部分已经可以了。

闭环部分:

回复5楼:我因为没学过AVR所以德国人的程序没太看懂,其中if(SENSE_H) sense = 1; else sense = 0;中的SENSE_H和sense各代表什么?
答:这里是比较器输出的高低电平的判断。SENSE_H和sense都在源代码里面有定义,建议lz仔细看代码都在blmc。c和blmc.h里面。遇到这些问题请先搜索一下代码,避免浪费论坛的资源



为什么SENSE_FALLING_INT;SENSE_B; 两句的顺序和其他的不一样,比如SENSE_A; SENSE_RISING_INT;?
答:语句反过来也可以。

rei1984 发表于 2009-3-18 16:00:10

为什么SENSE_FALLING_INT;SENSE_B; 两句的顺序和其他的不一样,比如SENSE_A; SENSE_RISING_INT;?
答:语句反过来也可以。

因为都是define,gcc默认优化-o以后汇编代码都是一样的。可以通过看编译出来的汇编段知道答案

zhuml2010 发表于 2011-4-8 09:43:28

回复【3楼】hbkdcc
-----------------------------------------------------------------------

流程图能不能清楚一点啊,能把源文件发给我一份吗,发到我邮箱,谢谢了,zhuml2010@163.com。
有好的电调资料发给我一些

scgyf 发表于 2011-7-11 17:58:45

谢谢楼上的流程图

lyh_ocean 发表于 2013-3-9 10:37:41

{:smile:}{:smile:}

wanstrive 发表于 2013-3-11 11:01:40

感觉好复杂哦!!

robin林 发表于 2013-4-23 17:46:02

楼主分享下程序啊
页: [1]
查看完整版本: 关于德国人无刷电调程序的问题?