关于LPC2131输出PWM的问题
启动文件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使能)
}