[技术问答] 如果正确开启和关闭003的PWM

[复制链接]
1451|5
 楼主| lyping 发表于 2018-8-27 16:24 | 显示全部楼层 |阅读模式
每次开启PWM的时候,数据不能立即更新,要等下个周期才正常,另外关闭的时候也会出现波形不完整的情况,现在是用到2路PWM取反一路中心对齐做互补PWM,总是在开启和关闭的时候波形不完整,有用过的大佬指点一下。
jiekou001 发表于 2018-8-27 18:57 | 显示全部楼层
是的,所有的PWM都是这样,要等当前周期完成才行。
 楼主| lyping 发表于 2018-8-27 19:06 | 显示全部楼层
现在主要的问题还在这里,开启了2路PWM,那怎么判断2路的波形都已经正常完成呢
 楼主| lyping 发表于 2018-8-27 19:08 | 显示全部楼层
这是每次关闭的程序
        while(LOAD);
        PWMCON0=0x00;                                                //关闭PWM
        set_SFRPAGE;
        PIOCON1=0x00;                                                        //清除P04 PWM3  P05  PWM2
        clr_SFRPAGE;
        P04=0;
        P05=0;
        PNP=0x00;                                                                //关闭´PWM取反
 楼主| lyping 发表于 2018-8-27 19:18 | 显示全部楼层
这是每次的开启程序,每次打开PWM方向不同,所以需要取反不同的PWM
       while(LOAD);
        CLRPWM=0;
        PWMPH=0x00;                                                       
        PWMPL=0x68;
        if(OUT_PWM_COUNT&1)
        {
                PWM2H = 0x00;                                               
                PWM2L = 0x3d;                                        //PWM2                 2D
                                               
                PWM3H = 0x00;                                               
                PWM3L = 0x2d;                                        //PWM3                3D
                                               
                PNP=0x04;                                        //取反PWM2   PNP=0x04;
        }
        else
        {
                PWM2H = 0x00;                                               
                PWM2L = 0x2d;                                        //PWM2         2D
                                                       
                PWM3H = 0x00;                                               
                PWM3L = 0x3d;                                        //PWM3         3D
                                               
                PNP=0x08;                                        //取反PWM3   PNP=0x08;
        }
        set_SFRPAGE;
        PIOCON1=0x0c;                                        //P04 PWM3  P05  PWM2
        clr_SFRPAGE;
                                       
        PWMCON0=0x80;                                        //打开PWM

 楼主| lyping 发表于 2018-8-27 19:26 | 显示全部楼层
本帖最后由 lyping 于 2018-8-27 21:23 编辑

589755b83df56c8a9a.png 有时候启动的波形会这样,同时导通了,后面的又是正常的 994335b83df962d501.png
794275b83dfbbae622.png 有时候关的时候波形会这样,不是完整的
140105b83df3db11b6.png
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

25

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部