智能车制作

标题: 关于占空比的问题 [打印本页]

作者: fuyuan513    时间: 2013-4-19 17:44
标题: 关于占空比的问题
if(DTY1>=MOTOR_OUT_MAX) DTY1=MOTOR_OUT_MAX;
      
    在这DTY1=1000,为什么在传到PWMDTY5之后就变为了232就大神帮忙

      
        PWMDTY5=DTY1;
        PWMDTY3=DTY1;
作者: 602王帅    时间: 2013-4-19 20:37
因为你的PWM 模块没有级联
例如:
PWMCTL_CON23=1;   //23级联
PWMCTL_CON45=1;    //45级联
没有级联之前PWMDTY是8位寄存器能存的最大数是2的八次方;2的八次方是256(实际是0~255).所以说 PWMDTY5=1000;就溢出了
1000-256*3=1000-768=232;
如果级联了PWMDTY是十六寄存器,是2的16次方,2的16次方=65536(实际是0~65535),级联就可以解决问题了PWMDTY45=1000。
{:soso_e100:}
作者: fuyuan513    时间: 2013-4-19 21:27
级联了啊
作者: 602王帅    时间: 2013-4-20 08:03
fuyuan513 发表于 2013-4-19 21:27
级联了啊

级联应该是PWMDTY45,而不是PWMDTY5,PWMDTY5 级联是01级联23级联45级联67级联,级联之后就变成8个通道了。级联的设法是设置各个通道的1,3,5,7。例如:
PWMPER45=0X0A;            //T=1/100*10=0.1
PWMDTY45=0X02;            //2除10*%100=20%

时钟选择寄存器:PWMCLK
PWMCLK_PCLK5=1;      //SA
启动器存期:PWME

PWME_PWME5=1;
等等;
再就是背景调试模式下看看个寄存器的值,跟你设置的是不是一样的。

作者: fuyuan513    时间: 2013-4-20 10:52
602王帅 发表于 2013-4-20 08:03
级联应该是PWMDTY45,而不是PWMDTY5,PWMDTY5 级联是01级联23级联45级联67级联,级联之后就变成8个通道了 ...

谢谢啊!还想问您一个问题,我们的陀螺仪采到的值中间值与最大值和最小值的差值不相等?是否可以通过一定的比例将它们的值调节的相等。
作者: 602王帅    时间: 2013-4-20 11:10
fuyuan513 发表于 2013-4-20 10:52
谢谢啊!还想问您一个问题,我们的陀螺仪采到的值中间值与最大值和最小值的差值不相等?是否可以通过一定 ...

别客气!俺也是一个苦逼的孩纸,我也不太清楚呀!不好意思呀,帮不了你了。


作者: fuyuan513    时间: 2013-4-20 19:27

作者: hui911127    时间: 2013-4-20 22:59

作者: fuyuan513    时间: 2013-4-21 12:07





欢迎光临 智能车制作 (http://111.231.132.190/) Powered by Discuz! X3.2