|
这一期给大家带来的是PWM的控制函数,PWM的工作原理就是通过控制占空比来达到对目标的调节与控制。老规矩,先把PWM的初始化函数贴出来。
void PWM_Init(){ WdtCfg(T3CON_PRE_DIV1,T3CON_IRQ_EN,T3CON_PD_DIS); ClkDis(CLKDIS_DISSPI0CLK| CLKDIS_DISSPI1CLK| CLKDIS_DISI2CCLK| CLKDIS_DISUARTCLK| CLKDIS_DISPWMCLK| CLKDIS_DIST1CLK| CLKDIS_DISDACCLK| CLKDIS_DISDMACLK| CLKDIS_DISADCCLK); ClkCfg(CLK_CD0,CLK_HF,CLKSYSDIV_DIV2EN_DIS,CLK_UCLKCG); DioCfg(pADI_GP1,0x50); PwmInit(UCLK_2,PWMCON0_PWMIEN_EN,PWMCON0_SYNC_EN,PWMCON1_TRIPEN_DIS); PwmGo(PWMCON0_ENABLE_EN,PWMCON0_MOD_DIS); }前三行大家都比较熟悉,就是对系统时钟的一些配置,之前的文章中有介绍。下一行是设置PWM的输出,设置P1.2和P1.3作为输出引脚,然后是使能PWM的时钟函数。之后配置PWM为标准输出模式。另外,在使用PWM时还要注意一些使用规则,确保高端高电平的时间不能大于低端高电平的时间。初始化函数完成之后需要在主函数中调用,然后编写控制子函数,代码很简单,如下。void StartPWM(){ PwmTime(PWM0_1,200,150,40); }子函数简洁易懂,实现的功能是设置周期数为200,然后设置高端PWM0高电平占空比75%,低端PWM1高电平占空比20%。然后在while()循环中调用该函数,即可完成该部分的函数编写。记得不要忘记编写前的项目配置工作。 |
|