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.

28027编程中PWM的时钟问题



在程序有有:CLK_enablePwmClock(myClk, PWM_Number_1);

但是我看了下PWM_Number_1的其它选择项:

PWM_Number_1=0,
PWM_Number_2,
PWM_Number_3,
PWM_Number_4,
PWM_Number_5,
PWM_Number_6,
PWM_Number_7

请教下工程师,28027不是只有4个PWM吗,为什么这里有8个PWM选项

  • 28027确实只有4个PWM模块,上面的这个定义是一种通用的定义方式,供其它有更多PWM模块的TMS320F2802x系列使用。

    下面是函数的代码,可以看到它是通过移位写1来使能PWMclock的。

    void CLK_enablePwmClock(CLK_Handle clkHandle, const PWM_Number_e pwmNumber)
    {
    CLK_Obj *clk = (CLK_Obj *)clkHandle;


    ENABLE_PROTECTED_REGISTER_WRITE_MODE;

    // set the bits
    clk->PCLKCR1 |= 1 << pwmNumber;

    DISABLE_PROTECTED_REGISTER_WRITE_MODE;

    return;
    } // end of CLK_enablePwmClock() function

    下图为28027的寄存器PCLKCR1寄存器,显然只有当pwmNumber=0-3的时候写进去才有效