微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 关于LPC2131输出PWM的问题

关于LPC2131输出PWM的问题

时间:10-02 整理:3721RD 点击:
想用p0.0和p0.1输出pwm驱动舵机,周期20ms,占空比1.7ms。
启动文件Startup.s中设置的PLL倍频值为5  VPB分频值为4。
可是电路检查无误后,运行程序它就是不走,仿真发现有个很小的PWM波,不知为何,求教各位大神!

#include <LPC213x.H>
void pwm_init()
{
        //设置P0.0,P0.1为PWM1与PWM3输出引脚
        PINSEL0 &= 0xFFFFFFF0; //低四位置0,其他高位为1
        PINSEL0 |= 0x0000000A;        //低四位为1010,其他高位为1           0 1位设置P0.0的模式为PWM输出PWM1  2 3位设置P0.1的模式为PWM输出PWM3
        PWMTCR = 2;  //计数器复位  PWM定时器控制寄存器(计数使能和复位 PWM使能)          
        PWMPR  = 0;         //不分频       PWM预分频寄存器
        PWMPCR = 0;         //单边+禁止输出     PWM控制寄存器(信号为单边还是双边,输出还是禁止)
        PWMLER = 0;   //不锁存
        //#define Fosc 11059200  #define Fcclk  (Fosc * 4)   #define Fcco  (Fcclk * 4) #define Fpclk  (Fcclk / 4) * 1 在config.h中
        PWMMR0 = 11059200*5/4*20/1000;        //设置PWM的周期为20ms       
        PWMMR1 = 11059200*5/4*15/10000;        //PWM1信号的匹配值1.5ms         左轮不动
        PWMMR3 = 11059200*5/4*15/10000;        //PWM3信号的匹配值1.5ms         右轮不动
        PWMLER = 0x0000000B; //上三句在匹配寄存器中设置好的匹配值,此句锁存PWMMR0 PWMMR1 PWMMR3 中的值
        PWMMCR = 2;   //PWMTC中的值与PWMMR0中的值匹配后PWMTC复位        PWM匹配控制寄存器(设置PWMTC与谁匹配,匹配后干嘛,复位 停止或是中断)
        PWMPCR = 0x00000A00;    //设置PWM1和PWM3有效           PWM控制寄存器(信号为单边还是双边,输出还是禁止)
        PWMTCR = 9;  //PWM使能 计数器使能   PWM定时器控制寄存器(计数使能和复位 PWM使能)   
}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top