本章主要介绍LPC1768的脉宽调制器PWM,通过本章的学习,可以了解到LPC1768PWM使用。 LPC1768的PWM和STM32的PWM不同,STM32的PWM是和定时器集成在一起,而LPC1768的PWM是单独的一个模块。他也可以产生单边沿或者多边沿的PWM输出,最多缠上六路单边沿的PWM,以及最多产生三路双边沿的PWM输出,也可以混合进行输出。发生匹配时,可产生对应的中断。有两路32位捕获通道可以取到定时器的瞬时值,输入捕获通道可以选择产生中断。NXP官方的LPCOPEN2.10库没有提供PWM库函数文件,本章实验用寄存器。
/************************************************************************************************
函数名: void PWM_Init()
函数功能:PWM初始化,
参数:无
返回值:无
*************************************************************************************************/
void PWM_Init()
{
LPC_SC->PCONP|=(1<<6);//使能PWM外设功率寄存器
LPC_PINCON->PINSEL4|=(1<<2);//设置P2.1为PWM2通道
LPC_PWM1->CTCR=0; //工作于定时器模式
LPC_PWM1->PR=0; //预分频比例为1:5
LPC_PWM1->PC=0;
LPC_PWM1->TC=0;
LPC_PWM1->MR0=2500-1; //配置PWM频率为10kHz pclk/2500-1=10khz
LPC_PWM1->MR2=(LPC_PWM1->MR0+1)*(15)/100-1; //配置PWM1.2的PWM占空比为15
LPC_PWM1->LER=(1<<2)|(1<<0); //锁存PWM值并立即生效
LPC_PWM1->MCR=0x02; //LPC_PWM1->TC计数到LPC_PWM1->MR0的时候TC复位
LPC_PWM1->PCR=(1<<10)|(0<<2); //配置PWM1.2为单边输出,并使能
LPC_PWM1->TCR=(1<<3)|(1<<0); //使能PWM1定时器并使能PWM功能
}
/************************************************************************************************
函数名: void PWM_SET(uint16_t duty )
函数功能:设置占空比
参数:duty 占空比
返回值:无
*************************************************************************************************/
void PWM_SET(uint16_t duty ){
LPC_PWM1->MR2=(LPC_PWM1->MR0+1)*duty/100-1; //duty就是占空比
LPC_PWM1->LER=(1<<2)|(1<<0); //锁存PWM值并立即生效
}
【12】LPC1768_PWM实验.rar
(251.15 KB, 下载次数: 16)
此内容由EEWORLD论坛网友加勒比海盗原创,如需转载或用于商业用途需征得作者同意并注明出处