工具与软件:
专家们、您好!
我 已将 ePWM11配置为向上/向下模式、并 通过将 INTSEL 位写入011来尝试在 TCBR 为零或周期时启用 PWM 中断
EPWM_setInterruptSource (EPWM11_BASE、EPWM_INT_TBCTR_ZERO_OR_PERIOD);

我是否 正确假设每个 PWM 周期(以红色标记)都将产生2个中断、一个在 TCBR = 0时产生、另一个在 TCBR =周期时产生?

现在、当 TCBR 为0时、如果我检查方向(TBSTS. CTRDIR)、假设计数器将递增计数、我是否正确? 当 TCBR 等于周期时、计数器将会递减计数?
我试图验证上述,通过检查的方向在 PWM ISR ,但它总是显示为它是向上计数,它从不向下计数,我试图切换一个 GPIO 来验证这一点,但总是低!
__interrupt void pwm11_ISR(void)
{
pwm_CounterDIR = EPWM_getTimeBaseCounterDirection(EPWM11_BASE);
testTCBR1 = EPWM_getTimeBaseCounterValue(EPWM11_BASE);
if(EPWM_getTimeBaseCounterDirection(EPWM11_BASE))
{
GPIO_writePin(46,0);
}
else
{
GPIO_writePin(46,1);
}
testTCBR2 = EPWM_getTimeBaseCounterValue(EPWM11_BASE);
EPWM_clearEventTriggerInterruptFlag(EPWM11_BASE);
ADC_clearInterruptStatus(ADCA_BASE, ADC_INT_NUMBER1);
Interrupt_clearACKGroup( INTERRUPT_ACK_GROUP3 |
INTERRUPT_ACK_GROUP11 );
}
我在这里遗漏了什么配置?
如果我将中断源设置为:
EPWM_setInterruptSource (EPWM11_BASE、 EPWM_INT_TBCTR_ZERO );、则 GPIO 始终为低电平。
类似地、将中断源设置为
EPWM_setInterruptSource (EPWM11_BASE、 EPWM_INT_TBCTR_PERIOD );、 则 GPIO 始终为高电平。
但当我将中断源设置为时
EPWM_setInterruptSource (EPWM11_BASE、 EPWM_INT_TBCTR_ZERO_OR_PERIOD );、GPIO 始终为低电平!!、