发现个MK电调的BUG
首先,我承认我学艺不精,有砖请轻拍,这个BUG跟PPM解码有关,如果没用到PPM通信的,应该没有什么影响。
MK电调对PPM信号解码用的是T1的输入捕捉方式,同时T1的PWM产生方式是相位修正PWM,一个PWM周期,TCNT1从0到0XFF,再从0XFF到0,每1个TCNT1值都会前后出现两次,捕捉到的ICR1的值就不对。也就得不出正确的脉宽。 不对,你的理解错误。
程序中定义的是 unisged int,2个相减 刚好是插值
ppm 那块是对的。 楼上,你没有理解我的意思,PPM上升沿和下降沿的ICR1值相减我自然知道,但是关键是两次捕捉到的ICR1值可能是错的,因为定时器上升过程和下降过程的同一个TCNT1值会出现两次,但这两次对应的PPM脉冲是不同的,你怎么分辨捕捉到的是前一次还是后一次。 killin 发表于 2011-10-21 12:47 static/image/common/back.gif
楼上,你没有理解我的意思,PPM上升沿和下降沿的ICR1值相减我自然知道,但是关键是两次捕捉到的ICR1值可能 ...
T1输入捕捉和输出PWM不是一回事儿 我明白楼主的意思,我也有和楼主一样的困惑。感觉MK电调的输入捕获的计算有问题。 chenbelief_007 发表于 2013-12-31 15:39
我明白楼主的意思,我也有和楼主一样的困惑。感觉MK电调的输入捕获的计算有问题。 ...
您好,我在看MK电调代买的时候也碰到了这个困惑,而且把得到的PPM值用串口传回来看,确实不大正确呀,请问该怎么解决呢? 是滴,這是一個德國人知道的錯誤,所以程式中有以下代碼
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; 我现在也发现这个问题,MK电调的输入捕获的计算不是很准确,PPM输入用显波器测量是稳定的,但PWM输出不稳定,驱动电机时转速时大时小不稳定,不知道楼主解决这个问题了没,能否分享一下? 问下,MK的电调是不是可以不用PPM解码板,PPM信号直接接到MK电调上就可以吗?我试焊了一块板子,接上PPM信号后没啥反应。我是直接烧写的源程序HEX文件,没烧写bootloader,跟这个好像关系不大。疑问有很多,哪位大神来答疑一下
页:
[1]