工具与软件:
专家们、您好!
我 已将 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 始终为低电平!!、