Cortex-M0 LPC1114/LPC1343 的 PWM 的配置 - 绿无涯 2010-12-10
http://djbgreen.blog.163.com/blog/static/8341012010111001110596/
介绍LPC1114/LPC1343的PWM初始化步骤和程序。这里使用TMR32B0定时器的作为PWM初始化的介绍,分别提供了TMR32B0和TMR16B1的初始化程序。
初始化步骤:
配置TMR32B0定时器产生50KHz,分别在MAT0和MAT1输出50%和70%占空比
1.LPC_TMR32B0->TCR=0; //关闭timer32B0
2.LPC_SYSCON->SYSAHBCLKCTRL|=(1<<9); //只有提供了timer32B0的时钟后才能使用timer32B0
3.LPC_TMR32B0->TCR=0x02; //定时器timer32B0复位
4.//端口配置为MAT0和MAT1模式
LPC_IOCON->PIO1_6=0x02; //设置PIO1_6为CT320MAT0
LPC_IOCON->PIO1_7=0x02; //设置PIO1_7为CT320MAT0 (不能配错,不然出不来)
5.匹配寄存器配置,设置占空比(<周期MR3)
LPC_TMR32B0->MR0 =500; //50%占空比
LPC_TMR32B0->MR1 =300; //70%占空比
6.分频设置
LPC_TMR32B0->PR =0; //设置分频系数
7.控制周期
LPC_TMR32B0->MR3 =1000; //周期控制,20us
8.匹配控制寄存器配置
LPC_TMR32B0->MCR = (2<<9); //设置如果MR3和TC匹配,TC复位:[10]=1
9,打开定时器TMR32B0
LPC_TMR32B0->TCR =0x01; //定时器打开
以下分别是LPC1114/LPC1343 TMR32B0的PWM初始化,50KHz,MAT0输出50%,MAT1输出70%的占空比
程序。
void PWM_Init(void) // CT32B0 MAT0:50%,50KHz,MAT1:70%,50KHz
{
LPC_TMR32B0->TCR=0;
LPC_SYSCON->SYSAHBCLKCTRL|=(1<<9); //打开定时器模块
LPC_TMR32B0->TCR=0x02; //定时器复位
LPC_IOCON->PIO1_6=0x02; //设置PIO1_6为CT320MAT0
LPC_IOCON->PIO1_7=0x02; //设置PIO1_7为CT320MAT0 (不能配错,不然出不来)
LPC_TMR32B0->MR0 =500; //50%占空比
LPC_TMR32B0->MR1 =300; //70%占空比
LPC_TMR32B0->PWMC =0x03; //设置 MA0,1为PWM输出
LPC_TMR32B0->PR =0; //设置分频系数
LPC_TMR32B0->MR3 =1000; //周期控制,20us
LPC_TMR32B0->MCR = (1<<10); //设置如果MR3和TC匹配,TC复位:[10]=1
LPC_TMR32B0->TCR =0x01; //定时器打开
}
以下是LPC1114/LPC1343 TMR16B1定时器的PWM初始化,50KHz,50%
void PWM_Init(void) //TMR16B1定时器的PWM初始化,50KHz,50%
{
LPC_TMR16B1->TCR=0; //关闭Timer16B1
LPC_SYSCON->SYSAHBCLKCTRL|=(1<<8); //提供TMR16B1时钟
LPC_TMR16B1->TCR=0; //关闭Timer16B1
LPC_IOCON->PIO1_9 = 0x01; //将引脚PIO1_9设为CT16B1_MAT0功能
LPC_TMR16B1->MR0 = 500; //占空比
LPC_TMR16B1->PWMC = 0x01; // 使能PWM模式,用于外部配置管脚
//LPC_IOCON->PIO1_10 = 0x02; //将引脚PIO1_10设为CT16B1_MAT1功能
//LPC_TMR16B1->MR1 = 500; //占空比
//LPC_TMR16B1->PWMC = 0x02; // 使能PWM模式,用于外部配置管脚
LPC_TMR16B1->PR = 0; //为0部分频(这里为系统时钟50MHz)
LPC_TMR16B1->MR3 = 1000; //PWM周期
LPC_TMR16B1->MCR = 0x0400; //设置如果MR3和TC匹配,TC复位:[10]=1
LPC_TMR16B1->TCR |= 0x01; //打开Timer16B1
}
以上两个初始化程序均用示波器观察过波形。
.END
No comments:
Post a Comment