提交 fad481da 作者: wysheng

优化模块CAN通讯

上级 756cfd3e
......@@ -70,6 +70,13 @@ void DcModuleManageProcess_SmartAllocation(void)
u32 Volt, Volt_A, Volt_B;
u8 status;
static u32 Tick = 0;
if ((GetSystemTick() -Tick) < 10)
{
return;
}
Tick = GetSystemTick();
StructDcModuleSend DataSend;
......@@ -265,6 +272,14 @@ void DcModuleCtrlProcess_SmartAllocation(void)
static u8 LastFlag_A = 0;
static u8 LastFlag_B = 0;
static u32 Tick = 0;
if ((GetSystemTick() -Tick) < 10)
{
return;
}
Tick = GetSystemTick();
static StructDcModuleUsedStatus status[4] =
{
Invalid, Invalid, Invalid, Invalid
......
......@@ -16,11 +16,11 @@
StructDcModuleAbility DcModuleAbility =
{
.MaxVolt = DcModuleMaxVolt,
.MinVolt = DcModuleMinVolt,
.MaxCurrt = DcModuleMaxCurrt,
.MinCurrt = DcModuleMinCurrt,
.SingleMaxCurrt = DcModuleSinMaxCurrt,
.MaxVolt = DcModuleMaxVolt,
.MinVolt = DcModuleMinVolt,
.MaxCurrt = DcModuleMaxCurrt,
.MinCurrt = DcModuleMinCurrt,
.SingleMaxCurrt = DcModuleSinMaxCurrt,
};
......@@ -45,11 +45,11 @@ void DcModuleRxIrqHandle(void)
u8 RecvFlag;
Union1939Id Id1939 =
{
.Mult = 0,
.Mult = 0,
};
UnionYouExtId CommId =
{
.Mult = 0,
.Mult = 0,
};
IrSta = MCP2515_ReadStatus();
......@@ -253,7 +253,7 @@ void DcModuleSet(EnumSwitchStatus Set, u16 Volt, u16 Currt)
DcModuleManage.ValidNum -= DcModuleGroup[0].ValidNum;
}
}
else
else
{
DcModuleCtrl.CtrlFlag = 1;
DcModuleCtrl.NeedVolt = Volt;
......@@ -307,7 +307,7 @@ void DcModule(void const * parameter)
osDelay(6000);
DcModeleRelayInit();
DcModuleCanInit();
//ACContactorSet(eSwSta_On);
//ACContactorSet(eSwSta_On);
DcModuleAbility.MaxVolt = UserParam.DcMaxVolt;
DcModuleAbility.MinVolt = UserParam.DcMinVolt;
DcModuleAbility.MaxCurrt = UserParam.DcMaxCurrt;
......@@ -315,26 +315,30 @@ void DcModule(void const * parameter)
DcModuleAbility.SingleMaxCurrt = UserParam.SingleMaxCurrt;
DcModeMsg = NULL;
osMessageQDef(DcModeMsg, 64, StructDcModuleSend);
osMessageQDef(DcModeMsg, 128, StructDcModuleSend);
DcModeMsg = osMessageCreate(osMessageQ(DcModeMsg), NULL);
u32 SendTick = GetSystemTick();
while (1)
{
StructDcModuleSend DataSend;
if ((GetSystemTick() -SendTick) > 10)
{
SendTick = GetSystemTick();
StructDcModuleSend DataSend;
if (pdTRUE == xQueueReceive(DcModeMsg, &DataSend, 0))
{
DcModuleSendMsg(&DataSend);
}
}
DcModuleManageProcess_SmartAllocation();
osDelay(15);
//osDelay(15);
DcModuleCtrlProcess_SmartAllocation();
osDelay(15);
osDelay(10);
}
}
......@@ -368,7 +372,7 @@ void DcModuleSet_B(EnumSwitchStatus Set, u16 Volt, u16 Currt)
DcModuleManage_B.ValidNum -= DcModuleGroup[2].ValidNum;
}
}
else
else
{
DcModuleCtrl_B.CtrlFlag = 1;
DcModuleCtrl_B.NeedVolt = Volt;
......@@ -428,7 +432,7 @@ void DcModuleSet_AB(EnumSwitchStatus Set, u16 Volt, u16 Currt)
DcModuleCtrl_B.CtrlFlag = 0;
}
else
else
{
if (ChargeEnable_AB == 0) //单枪连冲
{
......@@ -444,7 +448,7 @@ void DcModuleSet_AB(EnumSwitchStatus Set, u16 Volt, u16 Currt)
DcModuleCtrl.NeedCurrt = DcModuleAbility.MinCurrt * DcModuleManage.ValidNum;
DcModuleCtrl.CtrlFlag = 0;
}
else
else
{
DcModuleCtrl.NeedVolt = Volt;
DcModuleCtrl.NeedCurrt = Currt; //* (DcModuleManage.ValidNum / (DcModuleManage.ValidNum + DcModuleManage_B.ValidNum));
......@@ -465,7 +469,7 @@ void DcModuleSet_AB(EnumSwitchStatus Set, u16 Volt, u16 Currt)
DcModuleCtrl.NeedCurrt = DcModuleAbility.MinCurrt * DcModuleManage.ValidNum;
DcModuleCtrl.CtrlFlag = 0;
}
else
else
{
DcModuleCtrl.NeedVolt = Volt;
DcModuleCtrl_B.NeedVolt = Volt;
......
......@@ -1122,7 +1122,7 @@ void TCUComm(void const * argument)
// TCUCodeDone();//告警故障处理
// TCUSaveEventDone();
//osDelay(10);
osDelay(5);
}
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论