love12345 发表于 2008-6-16 16:57:51

MikroKopter项目中电调笔记帖

这个帖主要是记录我看MikroKopter项目中电调代码的理解。希望对其它人有些帮助啦,这样大家玩起来才有意思!写的是主要部分,多是我比较关心的东东。有兴趣的网友也在这里说说吧, 让新人更易入手。


简单说说主程序吧。初始化io口 -> 读取地址脚,得到twi的地址设定 -> 初始化uart,timer0 -> 测试地址码是否有效(这个觉得德国人有点怪,不知为何要测试)-> 初始化pwm -> 初始化twi,ppm -> 初始化一些延时器(不喜欢它的延时处理方式) -> 初始化一些变量和系统设定.之后进入主工作循环。

SollwertErmittlung()是用于对twi ppm的转速设定通信服务,有一个延时器。如果在延时器超时前都未收到新的速度设定,哪么便使电机停转(设定转速为0)。

Anwerfen()是用于激发电机自启动的。暂时还未了解清楚,了解清楚后再说它的原理 。

nomoneyiv 发表于 2008-6-16 17:00:33

顶你!

love12345 发表于 2008-6-17 08:44:50

在Anwerfen()里两处调用Manuell()进行启动。使用全局变量Phase指示(加1并在0-5循环)下一个换向情况,直到检测到适合的极向和位置,并通过Phase记录,给SIGNAL(SIG_COMPARATOR)比较换向中断提示依据。

Manuell()的原理是按无刷电机的线圈和磁极特性,写出12种驱动检测组合。通过Phase切换不同组合,直到找到一个适合的。个人感觉这种方式有点不好,随机性大,使得启动时不一定能成功启动。不知各位有没有别的方式呢?

nomoneyiv 发表于 2008-6-30 20:53:24

期待注释,呵呵!

gzcrc 发表于 2008-7-17 21:09:40

呵呵,楼住顾着做俯卧撑呀,怎么不来做笔记,在等着看呢.

gzcrc 发表于 2008-7-17 21:28:49

好象在SollwertErmittlung() 中若收不到iic的讯号,自动检测串口讯号之后再检测ppm讯号是否存在.
页: [1]
查看完整版本: MikroKopter项目中电调笔记帖