TI中文支持网
TI专业的中文技术问题搜集分享网站

dsp28035 epwm

EPwm1Regs.TBCTL.bit.PRDLD = TB_IMMEDIATE; // Set immediate load
EPwm1Regs.TBPRD = period; // PWM frequency = 1 / perio

这两句是讲epwm文档上的103页的两句。

如果把这两句颠倒  那么先前配置的TBPRD就会清0  ,为什么会这样?配置也要讲先后顺序?

mangui zhang:周期寄存器配置肯定与上一句无关系可能是其他的配置导致清零了
如下面配置:
void Epwm1_Init(int16 PRD){
EPwm1Regs.TBPRD = PRD ; //设置周期EPwm1Regs.CMPA.half.CMPA = 0;//设置占空比
EPwm1Regs.CMPB = 0;

// Setup TBCLK
EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UP;//递增模式
//EPwm1Regs.TBCTL.bit.CTRMODE =TB_COUNT_UPDOWN;//增减模式
EPwm1Regs.TBCTL.bit.PHSEN = TB_DISABLE;// Disable phase loading
EPwm1Regs.TBCTL.bit.PRDLD = TB_SHADOW;// Disable phase loading
EPwm1Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_DISABLE;//
EPwm1Regs.TBPHS.half.TBPHS = 0x0000;// Phase is 0
EPwm1Regs.TBCTR = 0x0000;// Clear counter
EPwm1Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1;// Clock ratio to SYSCLKOUT
EPwm1Regs.TBCTL.bit.CLKDIV = TB_DIV1;// TBCLK = SYSCLKOUT/(HSPCLKDIV*CLKDIV)

// Setup shadow register load on ZERO
EPwm1Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW;EPwm1Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW;
EPwm1Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO;
EPwm1Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO;

// 递增模式的动作
EPwm1Regs.AQCTLA.bit.ZRO = AQ_SET;// Set PWM1A on Zero
EPwm1Regs.AQCTLA.bit.CAU = AQ_CLEAR;// Clear PWM1A on event A, up count
EPwm1Regs.AQCTLB.bit.ZRO = AQ_SET;// Set PWM1B on Zero
EPwm1Regs.AQCTLB.bit.CBU = AQ_CLEAR;// Clear PWM1B on event B, up count}

EPwm1Regs.TBCTL.bit.PRDLD = TB_IMMEDIATE; // Set immediate load
EPwm1Regs.TBPRD = period; // PWM frequency = 1 / perio

这两句是讲epwm文档上的103页的两句。

如果把这两句颠倒  那么先前配置的TBPRD就会清0  ,为什么会这样?配置也要讲先后顺序?

Susan Yang:配置是没有先后顺序的,建议您参考下例程进行配置。

EPwm1Regs.TBCTL.bit.PRDLD = TB_IMMEDIATE; // Set immediate load
EPwm1Regs.TBPRD = period; // PWM frequency = 1 / perio

这两句是讲epwm文档上的103页的两句。

如果把这两句颠倒  那么先前配置的TBPRD就会清0  ,为什么会这样?配置也要讲先后顺序?

user5860441:

回复 Susan Yang:

不知道你试过没有,我觉得和顺序也没关系,用的别的处理器没遇到过。

EPwm1Regs.TBCTL.bit.PRDLD = TB_IMMEDIATE; // Set immediate load
EPwm1Regs.TBPRD = period; // PWM frequency = 1 / perio

这两句是讲epwm文档上的103页的两句。

如果把这两句颠倒  那么先前配置的TBPRD就会清0  ,为什么会这样?配置也要讲先后顺序?

user5860441:

回复 Susan Yang:

现在使用立即模式,而不是阴影模式。

EPwm1Regs.TBCTL.bit.PRDLD = TB_IMMEDIATE; // Set immediate load
EPwm1Regs.TBPRD = period; // PWM frequency = 1 / perio

这两句是讲epwm文档上的103页的两句。

如果把这两句颠倒  那么先前配置的TBPRD就会清0  ,为什么会这样?配置也要讲先后顺序?

user5860441:

回复 mangui zhang:

我在一个项目中要跟踪电网的工频,虽然是50hz,但是实际还是有微小的波动,所以要用立即模式,来不断改周期寄存器TBPRD的值,并且我想在计数器值为0时发生中断,结果进了中断就出不来,仿真时发现,当配置立即模式这句话后TBPRD就为0了。

EPwm1Regs.TBCTL.bit.PRDLD = TB_IMMEDIATE; // Set immediate load
EPwm1Regs.TBPRD = period; // PWM frequency = 1 / perio

这两句是讲epwm文档上的103页的两句。

如果把这两句颠倒  那么先前配置的TBPRD就会清0  ,为什么会这样?配置也要讲先后顺序?

user5805327:

回复 user5860441:

请问,你跟踪电网频率采用的什么方法?怎么检测实现的?

赞(0)
未经允许不得转载:TI中文支持网 » dsp28035 epwm
分享到: 更多 (0)