您好!
我正在制作 ePWM 模块、用于在向上计数模式下进行0%至100%占空比控制。
以下摘录。
当我设置以下程序时、占空比仅在微控制器启动后的第一次变为100%。
init_func ()
EPwm1Regs.TBCTL.bit.CTRMODE = 3;/* STOP *
EPwm1Regs.TBPRD = 1000; /* 100kHz */
EPwm1Regs.AQCTL.bit.SHDWAQAMODE = 1; //上的影子
EPwm1Regs.AQCTL.bit.LDAQAMODE = 0; /* RELOAD =Zero*/
EPwm1Regs.CMPA.bit.CMPA = 700; //初始占空比70%*
~~~~~~~~~~~~~~~μ A
start_func ()
EPwm1Regs.AQCTLA.bit.CAU = 1; //清除*
EPwm1Regs.AQCTLA.bit.ZRO = 2; //设置*
EPwm1Regs.TBCTL.bit.CTRMODE = 0; /*开始*
我的预期是、第一个波形将输出大约70%的占空比。
但是、这种行为与我的预期不同。
"EPwm1Regs.AQCTLA.bit.CAU"似乎第一次被忽略、原因是什么?
是 AQ 子模块的影子模式导致问题、还是影响问题的"EPwm1Regs.TBCTL.bit.CTRMODE = 3"的优先级?
我知道我可以通过"关闭 AQ 子模块的影子模式"或"在设置 AQCTLA 之前启动 TBCTL 计数器"来解决这一问题。
不过,我想知道上述真正原因。
此致、
Masaru Maeda、