/* Zero crossing to Commutation trigger delay*/ \
v.CmtnTrig = 0; /* Always clear flag on entry */ \
\
if (v.DelayTaskPointer > 0) /* v.DelayTaskPointer = 1 for #CHK_TRIGGER*/ \
{ \
if (v.ZcTrig != 0) \
{ \
/* Substract NoiseWindowMax to compensate the advanced zero-crossing validation point */\
v.CmtnDelayCounter = v.CmtnDelay – v.NoiseWindowMax; \
v.DelayTaskPointer = 0; /* v.DelayTaskPointer = 0 for #COUNT_DWN*/ \
} \
} \
else /* v.DelayTaskPointer = 0 for #COUNT_DWN */ \
{ \
v.CmtnDelayCounter -= 1; \
if (v.CmtnDelayCounter == 0) \
{ \
v.CmtnTrig = 0x00007FFF; /* Yes!- Set trigger. This is used */ \
/* as an input to "MOD6_CNTR" module that changes the commutation sequence.*/ \
\
v.DelayTaskPointer = 1; /* v.DelayTaskPointer = 1 for #CHK_TRIGGER*/ \
}
Seven Han:
你好,这里有一篇文献:
https://wenku.baidu.com/view/cc3a13dc852458fb760b5684.html