EPwm1Regs.TBPRD = EPWM1_CARRIER_WAVE_TBPRD;
时间: 2023-09-16 21:10:44 浏览: 52
This line of code sets the period of the time-base counter for ePWM1 module to the value of EPWM1_CARRIER_WAVE_TBPRD. The time-base counter determines the frequency of the PWM signal generated by the ePWM module. The value of EPWM1_CARRIER_WAVE_TBPRD is typically calculated based on the desired carrier frequency and the clock frequency of the system.
相关问题
switch(paramet[SELKHZ]) { case 1: { KHZCOEF = 1; FSW = 36000; EPwm7Regs.TBPRD = 1388; EPwm7Regs.CMPA.bit.CMPA = 695; EpwmTbpr = 1388; SINEND=720; break; } 695怎么算出来的
根据代码中的注释,可以看出这是用于设置EPwm7Regs.CMPA寄存器的值。根据参数设置的不同,EPwm7Regs.CMPA的值也不同。在这段代码中,EPwm7Regs.CMPA的值是通过将EPwm7Regs.TBPRD的一半减去345得到的。由于在此之前设置了EPwm7Regs.TBPRD为1388,所以EPwm7Regs.CMPA的值为695。
具体计算过程如下:
EPwm7Regs.CMPA = EPwm7Regs.TBPRD / 2 - 345
EPwm7Regs.CMPA = 1388 / 2 - 345
EPwm7Regs.CMPA = 694.5 ≈ 695
EPwm1Regs.CMPA.half.CMPA =PWMPRD-cmp1;在DSPF28335中能否同时控制GPIO0/EPWM1A和GPIO1/EPWM1B输出
在 `DSPF28335` 中,`EPwm1Regs.CMPA.half.CMPA` 寄存器只能控制 GPIO0/EPWM1A 的输出,而 `EPwm1Regs.CMPB` 寄存器可以控制 GPIO1/EPWM1B 的输出。因此,这行代码只能同时控制 GPIO0/EPWM1A 和 GPIO1/EPWM1B 两个输出之一。如果想要同时控制这两个输出,需要在代码中分别改变 `EPwm1Regs.CMPA.half.CMPA` 和 `EPwm1Regs.CMPB` 寄存器的值。例如,下面的代码可以实现同时控制两个输出:
```
EPwm1Regs.CMPA.half.CMPA = PWMPRD - cmp1;
EPwm1Regs.CMPB = PWMPRD - cmp2;
```
其中,`cmp1` 和 `cmp2` 分别表示 GPIO0/EPWM1A 和 GPIO1/EPWM1B 的占空比。