搜索
bottom↓
回复: 4

LPC1768 关闭PWM时IO口电平

[复制链接]

出0入0汤圆

发表于 2014-7-7 13:41:15 | 显示全部楼层 |阅读模式
LPC1768 脉宽调制PWM已经可以用了,想做暂停PWM功能怎么做?
void MotorPWM_Init (void)
{
    uint32_t iTmp;
   
    LPC_PINCON->PINSEL4 |= (0x01 << 0)|(0x01 << 2)|(0x01 << 4)|(0x01 << 6);
    iTmp = SystemCoreClock/4/10000;                                     //1.4288kHz
    LPC_PWM1->PR  = 6;                                                  /* FPCLK_FREQ分频,PWM计数频率  */
                                                                        /* 为FPCLK_FREQ/10000           */
    LPC_PWM1->MCR = 0x02;                                               /* PWMMR0与EWMTC匹配时复位PWMTC */
    LPC_PWM1->PCR = (0 << 1)  |                                         /* PWM1单边沿控制               */
                    (0 << 2)  |                                         /* PWM2单边沿控制*/
                    (0 << 3)  |                                         /* PWM3单边沿控制               */
                    (0 << 4)  |                                         /* PWM4单边沿控制*/
                    (1 << 9)  |                                         /* 使能PWM1输硜E                */
                    (1 << 10) |                                         /* 使能PWM2输硜E                */   
                    (1 << 11) |                                         /* 使能PWM3输硜E                */
                    (1 << 12);                                          /* 使能PWM4输硜E                */
    LPC_PWM1->MR0 = iTmp;                                               /* PWM速率控制/计数初值         */

                                                                        /* 设置单边沿脉冲的脉窥滞位置   */
    LPC_PWM1->MR1 = Set_PWM1;                                           /* PWM1的置位位置               */
    LPC_PWM1->MR2 = Set_PWM2;                                           /* PWM2的复位位置               */
    LPC_PWM1->MR3 = Set_PWM3;                                           /* PWM3的置位位置               */
    LPC_PWM1->MR4 = Set_PWM4;                                           /* PWM4的复位位置               */
    LPC_PWM1->MR5 = Set_PWM5;                                           /* PWM5的置位位置               */
    LPC_PWM1->MR6 = Set_PWM6;                                           /* PWM6的复位位置               */

    LPC_PWM1->LER = 0x7F;                                               /* 锁存所有PWM匹配值            */
        CtrPWMST(OFF);


void CtrPWMST(uint16_t OnOrOff)
{
        if(OnOrOff==ON)
        {

                LPC_PWM1->TCR = 0x02;                                               /* 复位PWMTC                    */
                LPC_PWM1->TCR = 0x09;                                               /* 开启PWM                      */
        }
        else
        {       
             LPC_PWM1->TCR = 0x00;                                               /* 关闭PWM                      */
        }
}
上述代码可以产生PWM,但关闭PWM时,端口电平却是高电平,电机一直工作,怎么设置才能在关闭PWM时,端口电平为低电平。

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入168汤圆

发表于 2014-7-7 14:09:06 来自手机 | 显示全部楼层
可以设置空闲时的电平

出0入0汤圆

发表于 2014-7-7 14:45:10 | 显示全部楼层
把你想设置的PWM通道对应的MR寄存器设置为0就可以了

出0入0汤圆

 楼主| 发表于 2014-7-7 16:05:18 | 显示全部楼层
感觉3楼的法子像停止,而不是暂停,但我还是按你的法子做了,谢谢。

出0入0汤圆

发表于 2014-7-7 16:07:50 | 显示全部楼层
关使能啊。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-25 21:21

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表