TI中文支持网
TI专业的中文技术问题搜集分享网站

关于TMDSHV1PHINVKIT程序问题

void sSoftStartMode(void)
{
static int16 wTemp = 0;

if(FSuperFlag.BIT.FwFault == 1)
{
mALL_PWM_OFF();mFREE_RUN_OFF();
mOPRLY_OFF();wSysMode = cFaultMode;

return;
}

if(FSuperFlag.BIT.FwTurnOff == 1) //
{
FSuperFlag.BIT.FwTurnOff = 0;
mALL_PWM_OFF();mFREE_RUN_OFF();
mOPRLY_OFF(); //输出侧继电器关闭(不接通回路)
wSysMode = cStandByMode;
wTurnOffByButton = 1;
FSuperFlag.BIT.FwWarning = 1;
wTemp = 0;
return;
}

if(FSuperFlag.BIT.FwOpRlyStatus == 0)//继电器状态未接通回路
{
wTemp = 0;
mOPRLY_ON(); //Output relay switch to the main circuit side 输出继电器开关接通至主电路
dwBus_Voltage_Ref = Gui_Bus_Volt_Ref;
}
else //The relay is on the main circuit side 继电器状态为接通主回路
{
wTemp++;

if(wTemp < 2) //40ms, waiting for the relay 等待继电器
{
return;
}

if(FSuperFlag.BIT.FwPwmStatus == 0)
{
//dwBus_Voltage_Ref = dwBus_Voltage_Fbk;
mFREE_RUN_ON();//GPOUT
DINT;
DPL_Zero_Buff();
EINT;

mALL_PWM_ON(); //Turn on the PWMs//wTemp = 0;
return;}

if((dwBus_Voltage_Fbk <= (Gui_Bus_Volt_Ref + cBus10V)) &&
(dwBus_Voltage_Fbk > (Gui_Bus_Volt_Ref – cBus10V))) //dwBus_Voltage_Fbk{
wSysMode = cNormalInvMode;
dwBus_Voltage_Ref = Gui_Bus_Volt_Ref;
wTemp = 0;
return;
}
if(dwBus_Voltage_Ref >= (Gui_Bus_Volt_Ref + cBus5V))
{
dwBus_Voltage_Ref -= cBus1V; //Increase the BUS by 1V per 20ms}

#if(Protect_Enable == 1) // #define Protect_Enable 1
if(wTemp >= 1000) // >10s
{
//wTemp = 500; //For test
mALL_PWM_OFF();mFREE_RUN_OFF();
asm(" nop");
asm(" nop");
asm(" nop");
asm(" nop");
mOPRLY_OFF();wSysMode = cFaultMode;
Gui_wFaultCode = cSoftStartFail;
FSuperFlag.BIT.FwFault = 1;
wSysMode = cStandByMode;
wTemp = 0;
return;
}#endif}
}

以上是例程中工作在软启动的子程序。其中33行语句dwBus_Voltage_Ref = Gui_Bus_Volt_Ref;其中Gui_Bus_Volt_Ref在程序中的初始值cBus380V。

第62行的程序:

if(dwBus_Voltage_Ref >= (Gui_Bus_Volt_Ref + cBus5V))
{
dwBus_Voltage_Ref -= cBus1V; //Increase the BUS by 1V per 20ms}

请问这一小段程序具体的作用是什么?if(dwBus_Voltage_Ref >= (Gui_Bus_Volt_Ref + cBus5V))这个条件在什么情况下能成立?

麻烦工作人员给解答一下。谢谢!

JLDN:

没人在?很困扰啊!!

void sSoftStartMode(void)
{
static int16 wTemp = 0;

if(FSuperFlag.BIT.FwFault == 1)
{
mALL_PWM_OFF();mFREE_RUN_OFF();
mOPRLY_OFF();wSysMode = cFaultMode;

return;
}

if(FSuperFlag.BIT.FwTurnOff == 1) //
{
FSuperFlag.BIT.FwTurnOff = 0;
mALL_PWM_OFF();mFREE_RUN_OFF();
mOPRLY_OFF(); //输出侧继电器关闭(不接通回路)
wSysMode = cStandByMode;
wTurnOffByButton = 1;
FSuperFlag.BIT.FwWarning = 1;
wTemp = 0;
return;
}

if(FSuperFlag.BIT.FwOpRlyStatus == 0)//继电器状态未接通回路
{
wTemp = 0;
mOPRLY_ON(); //Output relay switch to the main circuit side 输出继电器开关接通至主电路
dwBus_Voltage_Ref = Gui_Bus_Volt_Ref;
}
else //The relay is on the main circuit side 继电器状态为接通主回路
{
wTemp++;

if(wTemp < 2) //40ms, waiting for the relay 等待继电器
{
return;
}

if(FSuperFlag.BIT.FwPwmStatus == 0)
{
//dwBus_Voltage_Ref = dwBus_Voltage_Fbk;
mFREE_RUN_ON();//GPOUT
DINT;
DPL_Zero_Buff();
EINT;

mALL_PWM_ON(); //Turn on the PWMs//wTemp = 0;
return;}

if((dwBus_Voltage_Fbk <= (Gui_Bus_Volt_Ref + cBus10V)) &&
(dwBus_Voltage_Fbk > (Gui_Bus_Volt_Ref – cBus10V))) //dwBus_Voltage_Fbk{
wSysMode = cNormalInvMode;
dwBus_Voltage_Ref = Gui_Bus_Volt_Ref;
wTemp = 0;
return;
}
if(dwBus_Voltage_Ref >= (Gui_Bus_Volt_Ref + cBus5V))
{
dwBus_Voltage_Ref -= cBus1V; //Increase the BUS by 1V per 20ms}

#if(Protect_Enable == 1) // #define Protect_Enable 1
if(wTemp >= 1000) // >10s
{
//wTemp = 500; //For test
mALL_PWM_OFF();mFREE_RUN_OFF();
asm(" nop");
asm(" nop");
asm(" nop");
asm(" nop");
mOPRLY_OFF();wSysMode = cFaultMode;
Gui_wFaultCode = cSoftStartFail;
FSuperFlag.BIT.FwFault = 1;
wSysMode = cStandByMode;
wTemp = 0;
return;
}#endif}
}

以上是例程中工作在软启动的子程序。其中33行语句dwBus_Voltage_Ref = Gui_Bus_Volt_Ref;其中Gui_Bus_Volt_Ref在程序中的初始值cBus380V。

第62行的程序:

if(dwBus_Voltage_Ref >= (Gui_Bus_Volt_Ref + cBus5V))
{
dwBus_Voltage_Ref -= cBus1V; //Increase the BUS by 1V per 20ms}

请问这一小段程序具体的作用是什么?if(dwBus_Voltage_Ref >= (Gui_Bus_Volt_Ref + cBus5V))这个条件在什么情况下能成立?

麻烦工作人员给解答一下。谢谢!

user450161651:

好像是判断总线电压不够,加上补偿的。

我没有研究过这些例程,看不太懂。

赞(0)
未经允许不得转载:TI中文支持网 » 关于TMDSHV1PHINVKIT程序问题
分享到: 更多 (0)