killin 发表于 2011-10-21 01:34:38

发现个MK电调的BUG

首先,我承认我学艺不精,有砖请轻拍,
这个BUG跟PPM解码有关,如果没用到PPM通信的,应该没有什么影响。
MK电调对PPM信号解码用的是T1的输入捕捉方式,同时T1的PWM产生方式是相位修正PWM,一个PWM周期,TCNT1从0到0XFF,再从0XFF到0,每1个TCNT1值都会前后出现两次,捕捉到的ICR1的值就不对。也就得不出正确的脉宽。

rei1984 发表于 2011-10-21 10:45:06

不对,你的理解错误。

程序中定义的是 unisged int,2个相减 刚好是插值

ppm 那块是对的。

killin 发表于 2011-10-21 12:47:05

楼上,你没有理解我的意思,PPM上升沿和下降沿的ICR1值相减我自然知道,但是关键是两次捕捉到的ICR1值可能是错的,因为定时器上升过程和下降过程的同一个TCNT1值会出现两次,但这两次对应的PPM脉冲是不同的,你怎么分辨捕捉到的是前一次还是后一次。

QuadRotor 发表于 2013-2-14 15:19:57

killin 发表于 2011-10-21 12:47 static/image/common/back.gif
楼上,你没有理解我的意思,PPM上升沿和下降沿的ICR1值相减我自然知道,但是关键是两次捕捉到的ICR1值可能 ...

T1输入捕捉和输出PWM不是一回事儿

chenbelief_007 发表于 2013-12-31 15:39:38

我明白楼主的意思,我也有和楼主一样的困惑。感觉MK电调的输入捕获的计算有问题。

buaaaircraft 发表于 2014-7-20 20:11:50

chenbelief_007 发表于 2013-12-31 15:39
我明白楼主的意思,我也有和楼主一样的困惑。感觉MK电调的输入捕获的计算有问题。 ...

您好,我在看MK电调代买的时候也碰到了这个困惑,而且把得到的PPM值用串口传回来看,确实不大正确呀,请问该怎么解决呢?

sunmoon6502 发表于 2014-7-27 01:33:27

是滴,這是一個德國人知道的錯誤,所以程式中有以下代碼

if(PPM_Signal < ppm)PPM_Signal++;
else if(PPM_Signal > ppm)PPM_Signal--;
ppm        = (PPM_Signal * FILTER_PPM + ppm) / (FILTER_PPM + 1);   
PPM_Signal = ppm;

WZY008 发表于 2015-1-10 22:55:19

我现在也发现这个问题,MK电调的输入捕获的计算不是很准确,PPM输入用显波器测量是稳定的,但PWM输出不稳定,驱动电机时转速时大时小不稳定,不知道楼主解决这个问题了没,能否分享一下?

sunicecream 发表于 2015-12-16 15:31:35

问下,MK的电调是不是可以不用PPM解码板,PPM信号直接接到MK电调上就可以吗?我试焊了一块板子,接上PPM信号后没啥反应。我是直接烧写的源程序HEX文件,没烧写bootloader,跟这个好像关系不大。疑问有很多,哪位大神来答疑一下
页: [1]
查看完整版本: 发现个MK电调的BUG