ADI EVAL-ADuCM360QSPZ开发套件试用报告六

作者: bugbugout
上传时间为: 2018-06-20 04:39 PM
2018-06-20
阅读:

       这一期给大家带来的是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()循环中调用该函数,即可完成该部分的函数编写。记得不要忘记编写前的项目配置工作。
全部评论 ()
条评论
写评论

创建讨论帖子

登录 后参与评论
系统提示