TMS320F28377S的PWM简单应用

1 在InitSysCtrl()之后打开PWM外设时钟

 CpuSysRegs.PCLKCR2.bit.EPWM1=1;

2 初始化PWM1的输出引脚

设置GPIOA0  A1的引脚复用到EPWM1A B。

 GpioCtrlRegs.GPAMUX1.bit.GPIO0 = 1;   // Configure GPIO0 as EPWM1A
    GpioCtrlRegs.GPAMUX1.bit.GPIO1 = 1;   // Configure GPIO1 as EPWM1B

3 停止PWM时钟后初始化PWM1  然后再选通PWM时钟

(1)CpuSysRegs.PCLKCR0.bit.TBCLKSYNC = 0;//停止PWM时钟

(2)设置PWM寄存器

EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UP; // 计数模式向上计数

EPwm1Regs.TBPRD = 2000;   //设置定时器周期为2000

//TBCLK = EPWMCLK /(HSPCLKDIV×CLKDIV)。

/*TBCLK 时基时钟。
这是EPWM 时钟的预分频版本(EPWMCLK),由ePWM 中的所有子模块使用。此时钟确定时基计数器递增或递减的速率。*/

EPwm1Regs.TBCTL.bit.HSPCLKDIV = TB_DIV2;//设置预分频为2分

EPwm1Regs.TBCTL.bit.CLKDIV = TB_DIV2;//设置分频为2分

 //设置影子寄存器加载为零
   //
   EPwm1Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW;
   EPwm1Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO;

 //
   // 设置对比值
   //
   EPwm1Regs.CMPA.bit.CMPA = EPWM1_MIN_CMPA;     // Set compare A value

//设置动作当计数等于0的时候为高电平,计数等于对比值时为低电平   

EPwm1Regs.AQCTLA.bit.ZRO = AQ_SET;            // Set PWM1A on Zero
   EPwm1Regs.AQCTLA.bit.CAU = AQ_CLEAR;   

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值