Hi
This Inoue
I have a question.
in epwm.h
static inline void
EPWM_setActionQualifierContSWForceAction(uint32_t base,
EPWM_ActionQualifierOutputModule epwmOutput,
EPWM_ActionQualifierSWOutput output)
{
//
// Check the arguments
//
ASSERT(EPWM_isBaseValid(base));
//
// Initiate a continuous software forced output
//
if(epwmOutput == EPWM_AQ_OUTPUT_A)
{
HWREGH(base + EPWM_O_AQCSFRC) =
((HWREGH(base + EPWM_O_AQCSFRC) & ~EPWM_AQCSFRC_CSFA_M) |
((uint16_t)output));
}
else
{
HWREGH(base + EPWM_O_AQCSFRC) =
((HWREGH(base + EPWM_O_AQCSFRC) & ~EPWM_AQCSFRC_CSFB_M) |
((uint16_t)output << EPWM_AQCSFRC_CSFB_S)) ;
}
}
Why does EPWM _ AQCSFRC _ CSFA _ M have a logical negation?
SPRUI 33 C – November 2015 – Revised August 2019 page 1981 shows that OTSFA is triggered by the lower 2 bits ~ EPWM _ AQCSFRC _ CSFA _ M causes the lower 2 bits to be zero regardless of output.
Also, ~ EPWM _ AQCSFRC _ CSFB _ M is defined as 0xCU, in which case OTSFB is 5 bits and does nothing regardless of opput.
If the library is correct, then SPRUI 33 C is wrong, and if SPRUI 33 C is correct, then the library is wrong. Currently, calling EPWM _ setActiveQUalifierContSWForceAction has no effect on the output.
Which should I believe?
Please tell me.