在程序有有: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选项
Brian Wang0:
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的时候写进去才有效