This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

tms320f28334在配置PWM时出现问题



求大神解答

鄙人在使用CCS6编写28334的PWM程序时出现了下面的问题

 EPwm1Regs.CMPA.half.CMPA
 EPwm1Regs.CMPB

把这两个寄存器的值改成不同,但是输出的两路PWM波占空比却是一样的

附上配置代码:

void InitEPwm1 (void)
{
EPwm1Regs.TBPRD = Period; // Set timer period
EPwm1Regs.TBPHS.half.TBPHS = 0x0000; // Phase is 0
EPwm1Regs.TBCTR = 0x0000; // Clear counter

// Setup TBCLK
EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UP; // Count up
EPwm1Regs.TBCTL.bit.PHSEN = TB_DISABLE; // Disable phase loading
EPwm1Regs.TBCTL.bit.HSPCLKDIV = TB_DIV5; // Clock ratio to SYSCLKOUT
EPwm1Regs.TBCTL.bit.CLKDIV = TB_DIV5;

EPwm1Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW; // Load registers every ZERO
EPwm1Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW;
EPwm1Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO;
EPwm1Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO;

// Setup compare
EPwm1Regs.CMPA.half.CMPA = 3000;
EPwm1Regs.CMPB = 6000;
// Set actions
EPwm1Regs.AQCTLA.bit.ZRO = AQ_SET; // Set PWM1A on Zero
EPwm1Regs.AQCTLA.bit.CAU = AQ_CLEAR;


EPwm1Regs.AQCTLB.bit.ZRO = AQ_SET; // Set PWM1B on Zero
EPwm1Regs.AQCTLB.bit.CAU = AQ_CLEAR;
}

请 帮忙看一下,谢谢!

  • Jun Liu8 说:

    求大神解答

    鄙人在使用CCS6编写28334的PWM程序时出现了下面的问题

     EPwm1Regs.CMPA.half.CMPA
     EPwm1Regs.CMPB

    把这两个寄存器的值改成不同,但是输出的两路PWM波占空比却是一样的

    附上配置代码:

    void InitEPwm1 (void)
    {
    EPwm1Regs.TBPRD = Period; // Set timer period
    EPwm1Regs.TBPHS.half.TBPHS = 0x0000; // Phase is 0
    EPwm1Regs.TBCTR = 0x0000; // Clear counter

    // Setup TBCLK
    EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UP; // Count up
    EPwm1Regs.TBCTL.bit.PHSEN = TB_DISABLE; // Disable phase loading
    EPwm1Regs.TBCTL.bit.HSPCLKDIV = TB_DIV5; // Clock ratio to SYSCLKOUT
    EPwm1Regs.TBCTL.bit.CLKDIV = TB_DIV5;

    EPwm1Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW; // Load registers every ZERO
    EPwm1Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW;
    EPwm1Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO;
    EPwm1Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO;

    // Setup compare
    EPwm1Regs.CMPA.half.CMPA = 3000;
    EPwm1Regs.CMPB = 6000;
    // Set actions
    EPwm1Regs.AQCTLA.bit.ZRO = AQ_SET; // Set PWM1A on Zero
    EPwm1Regs.AQCTLA.bit.CAU = AQ_CLEAR;


    EPwm1Regs.AQCTLB.bit.ZRO = AQ_SET; // Set PWM1B on Zero
    EPwm1Regs.AQCTLB.bit.CAU = AQ_CLEAR;
    }

    请 帮忙看一下,谢谢!

    输出的是他们中的一个吗?