Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
D
DC360_1drap3_xiaoju_V1
概览
概览
详情
活动
周期分析
版本库
存储库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
丁雨邯
DC360_1drap3_xiaoju_V1
Commits
257ed546
提交
257ed546
authored
5月 06, 2020
作者:
wysheng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
完善智能分配
上级
ff085b0f
隐藏空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
178 行增加
和
72 行删除
+178
-72
Drv_SmartAllocation.c
DcPillar/Src/SmartAllocation/Drv_SmartAllocation.c
+141
-25
Drv_SmartAllocation.h
DcPillar/Src/SmartAllocation/Drv_SmartAllocation.h
+1
-0
Drv_SmartAllocation_DcModule.c
DcPillar/Src/SmartAllocation/Drv_SmartAllocation_DcModule.c
+3
-1
SmartAllocation_B_ChgRun.c
DcPillar/Src/SmartAllocation/SmartAllocation_B_ChgRun.c
+20
-25
SmartAllocation_ChgRun.c
DcPillar/Src/SmartAllocation/SmartAllocation_ChgRun.c
+13
-21
没有找到文件。
DcPillar/Src/SmartAllocation/Drv_SmartAllocation.c
浏览文件 @
257ed546
...
@@ -13,28 +13,28 @@ StructDcModuleGroup DcModuleGroup[] =
...
@@ -13,28 +13,28 @@ StructDcModuleGroup DcModuleGroup[] =
{
{
1
,
0
,
0
,
0
,
2
,
0
,
0
,
0
1
,
0
,
0
,
0
,
2
,
0
,
0
,
0
},
},
Invalid
,
0
,
0
Invalid
,
0
,
0
,
0
},
},
{
{
1
,
0
,
1
,
0
,
{
{
3
,
0
,
0
,
0
,
0
,
0
,
0
,
0
3
,
0
,
0
,
0
,
0
,
0
,
0
,
0
},
},
Invalid
,
0
,
0
Invalid
,
0
,
0
,
0
},
},
{
{
2
,
0
,
2
,
0
,
{
{
4
,
0
,
0
,
0
,
5
,
0
,
0
,
0
4
,
0
,
0
,
0
,
5
,
0
,
0
,
0
},
},
Invalid
,
0
,
0
Invalid
,
0
,
0
,
0
},
},
{
{
1
,
0
,
1
,
0
,
{
{
6
,
0
,
0
,
0
,
0
,
0
,
0
,
0
6
,
0
,
0
,
0
,
0
,
0
,
0
,
0
},
},
Invalid
,
0
,
0
Invalid
,
0
,
0
,
0
},
},
};
};
...
@@ -70,13 +70,6 @@ void DcModuleManageProcess_SmartAllocation(void)
...
@@ -70,13 +70,6 @@ void DcModuleManageProcess_SmartAllocation(void)
u32
Volt
,
Volt_A
,
Volt_B
;
u32
Volt
,
Volt_A
,
Volt_B
;
u8
status
;
u8
status
;
static
u32
Tick
=
0
;
if
((
GetSystemTick
()
-
Tick
)
<
10
)
{
return
;
}
Tick
=
GetSystemTick
();
StructDcModuleSend
DataSend
;
StructDcModuleSend
DataSend
;
...
@@ -117,7 +110,8 @@ void DcModuleManageProcess_SmartAllocation(void)
...
@@ -117,7 +110,8 @@ void DcModuleManageProcess_SmartAllocation(void)
}
}
}
}
if
(
CheckTick
==
0
)
CheckTick
=
GetSystemTick
();
if
((
GetSystemTick
()
-
CheckTick
)
<
100
)
if
((
GetSystemTick
()
-
CheckTick
)
<
100
)
return
;
return
;
...
@@ -148,7 +142,7 @@ void DcModuleManageProcess_SmartAllocation(void)
...
@@ -148,7 +142,7 @@ void DcModuleManageProcess_SmartAllocation(void)
Flag
=
Flag
<<
1
;
Flag
=
Flag
<<
1
;
}
}
//DcModuleManage_All.ValidNum = Count;
for
(
i
=
0
;
i
<
DcModuleGroupSize
;
i
++
)
for
(
i
=
0
;
i
<
DcModuleGroupSize
;
i
++
)
{
{
Currt
=
0
;
Currt
=
0
;
...
@@ -218,6 +212,7 @@ void DcModuleManageProcess_SmartAllocation(void)
...
@@ -218,6 +212,7 @@ void DcModuleManageProcess_SmartAllocation(void)
}
}
else
if
(
DcModuleGroup
[
i
].
status
==
Hold_A
)
else
if
(
DcModuleGroup
[
i
].
status
==
Hold_A
)
{
{
if
(
DcModuleGroup
[
i
].
flag
)
continue
;
Volt_A
+=
DcModuleGroup
[
i
].
Voltage
;
Volt_A
+=
DcModuleGroup
[
i
].
Voltage
;
Currt_A
+=
DcModuleGroup
[
i
].
Current
;
Currt_A
+=
DcModuleGroup
[
i
].
Current
;
Count_A
+=
DcModuleGroup
[
i
].
ValidNum
;
Count_A
+=
DcModuleGroup
[
i
].
ValidNum
;
...
@@ -225,6 +220,7 @@ void DcModuleManageProcess_SmartAllocation(void)
...
@@ -225,6 +220,7 @@ void DcModuleManageProcess_SmartAllocation(void)
}
}
else
if
(
DcModuleGroup
[
i
].
status
==
Hold_B
)
else
if
(
DcModuleGroup
[
i
].
status
==
Hold_B
)
{
{
if
(
DcModuleGroup
[
i
].
flag
)
continue
;
Volt_B
+=
DcModuleGroup
[
i
].
Voltage
;
Volt_B
+=
DcModuleGroup
[
i
].
Voltage
;
Currt_B
+=
DcModuleGroup
[
i
].
Current
;
Currt_B
+=
DcModuleGroup
[
i
].
Current
;
Count_B
+=
DcModuleGroup
[
i
].
ValidNum
;
Count_B
+=
DcModuleGroup
[
i
].
ValidNum
;
...
@@ -272,8 +268,9 @@ void DcModuleCtrlProcess_SmartAllocation(void)
...
@@ -272,8 +268,9 @@ void DcModuleCtrlProcess_SmartAllocation(void)
static
u8
LastFlag_A
=
0
;
static
u8
LastFlag_A
=
0
;
static
u8
LastFlag_B
=
0
;
static
u8
LastFlag_B
=
0
;
static
u32
Tick
=
0
;
static
u32
Tick
=
0
;
//
if
((
GetSystemTick
()
-
Tick
)
<
10
)
if
(
Tick
==
0
)
Tick
=
GetSystemTick
();
if
((
GetSystemTick
()
-
Tick
)
<
100
)
{
{
return
;
return
;
...
@@ -294,9 +291,10 @@ void DcModuleCtrlProcess_SmartAllocation(void)
...
@@ -294,9 +291,10 @@ void DcModuleCtrlProcess_SmartAllocation(void)
u8
addr
;
u8
addr
;
u32
Volt
=
0
;
u32
Volt
=
0
;
u8
Cmd
=
0
;
u8
Cmd
=
0
;
u32
Value
=
0
;
Temp
=
0
;
Temp
=
0
;
//释放继电器
for
(
u8
i
=
0
;
i
<
DcModuleGroupSize
;
i
++
)
for
(
u8
i
=
0
;
i
<
DcModuleGroupSize
;
i
++
)
{
{
if
(
status
[
i
]
!=
DcModuleGroup
[
i
].
status
)
if
(
status
[
i
]
!=
DcModuleGroup
[
i
].
status
)
...
@@ -352,6 +350,7 @@ void DcModuleCtrlProcess_SmartAllocation(void)
...
@@ -352,6 +350,7 @@ void DcModuleCtrlProcess_SmartAllocation(void)
//Volt = DcModuleAbility.MinVolt * 100;
//Volt = DcModuleAbility.MinVolt * 100;
Cmd
=
0xAA
;
//关机
Cmd
=
0xAA
;
//关机
DcModuleGroup
[
i
].
flag
=
0
;
}
}
else
if
(
DcModuleGroup
[
i
].
status
==
Hold_A
)
else
if
(
DcModuleGroup
[
i
].
status
==
Hold_A
)
{
{
...
@@ -392,14 +391,14 @@ void DcModuleCtrlProcess_SmartAllocation(void)
...
@@ -392,14 +391,14 @@ void DcModuleCtrlProcess_SmartAllocation(void)
DataSend
.
Len
=
8
;
DataSend
.
Len
=
8
;
DataSend
.
Data
[
0
]
=
0x00
;
DataSend
.
Data
[
0
]
=
0x00
;
DataSend
.
Data
[
1
]
=
0x00
;
DataSend
.
Data
[
1
]
=
0x00
;
Temp
=
DcModuleAbility
.
MinCurrt
*
100
;
Value
=
DcModuleAbility
.
MinCurrt
*
100
;
DataSend
.
Data
[
2
]
=
(
u8
)
(
Temp
>>
8
);
DataSend
.
Data
[
2
]
=
(
u8
)
(
Value
>>
8
);
DataSend
.
Data
[
3
]
=
(
u8
)
(
Temp
>>
0
);
DataSend
.
Data
[
3
]
=
(
u8
)
(
Value
>>
0
);
Temp
=
Volt
;
//DcModuleAbility.MinVolt * 100;
Value
=
Volt
;
//DcModuleAbility.MinVolt * 100;
DataSend
.
Data
[
4
]
=
(
u8
)
(
Temp
>>
24
);
DataSend
.
Data
[
4
]
=
(
u8
)
(
Value
>>
24
);
DataSend
.
Data
[
5
]
=
(
u8
)
(
Temp
>>
16
);
DataSend
.
Data
[
5
]
=
(
u8
)
(
Value
>>
16
);
DataSend
.
Data
[
6
]
=
(
u8
)
(
Temp
>>
8
);
DataSend
.
Data
[
6
]
=
(
u8
)
(
Value
>>
8
);
DataSend
.
Data
[
7
]
=
(
u8
)
(
Temp
>>
0
);
DataSend
.
Data
[
7
]
=
(
u8
)
(
Value
>>
0
);
//放入队列
//放入队列
if
(
pdTRUE
!=
xQueueSend
(
DcModeMsg
,
&
DataSend
,
0
))
if
(
pdTRUE
!=
xQueueSend
(
DcModeMsg
,
&
DataSend
,
0
))
...
@@ -432,9 +431,124 @@ void DcModuleCtrlProcess_SmartAllocation(void)
...
@@ -432,9 +431,124 @@ void DcModuleCtrlProcess_SmartAllocation(void)
if
(
Temp
)
if
(
Temp
)
return
;
return
;
Temp
=
0
;
//检测升压完成
for
(
u8
i
=
0
;
i
<
DcModuleGroupSize
;
i
++
)
{
if
(
DcModuleGroup
[
i
].
status
==
Hold_A
&&
i
!=
0
)
{
if
(
abs
((
s32
)(
DcModuleGroup
[
i
].
Voltage
*
100
)
-
(
s32
)
DcModuleManage
.
SetVolt
)
>
10000
)
{
Temp
++
;
for
(
u8
j
=
0
;
j
<
DcModuleGroup
[
i
].
num
;
j
++
)
{
addr
=
DcModuleGroup
[
i
].
modules
[
j
].
addr
;
DataSend
.
Id
=
0x1307C080
+
addr
;
DataSend
.
Len
=
8
;
DataSend
.
Data
[
0
]
=
0x00
;
DataSend
.
Data
[
1
]
=
0x00
;
Value
=
DcModuleAbility
.
MinCurrt
*
100
;
DataSend
.
Data
[
2
]
=
(
u8
)
(
Value
>>
8
);
DataSend
.
Data
[
3
]
=
(
u8
)
(
Value
>>
0
);
Value
=
DcModuleManage
.
SetVolt
;
DataSend
.
Data
[
4
]
=
(
u8
)
(
Value
>>
24
);
DataSend
.
Data
[
5
]
=
(
u8
)
(
Value
>>
16
);
DataSend
.
Data
[
6
]
=
(
u8
)
(
Value
>>
8
);
DataSend
.
Data
[
7
]
=
(
u8
)
(
Value
>>
0
);
//放入队列
if
(
pdTRUE
!=
xQueueSend
(
DcModeMsg
,
&
DataSend
,
0
))
{
//osDelay(10);
}
DcModuleManage
.
Cmd
=
0x55
;
//开机
DataSend
.
Id
=
0x1307C080
+
addr
;
DataSend
.
Len
=
8
;
DataSend
.
Data
[
0
]
=
0x02
;
DataSend
.
Data
[
1
]
=
0x00
;
DataSend
.
Data
[
2
]
=
0x00
;
DataSend
.
Data
[
3
]
=
0x00
;
DataSend
.
Data
[
4
]
=
0x00
;
DataSend
.
Data
[
5
]
=
0x00
;
DataSend
.
Data
[
6
]
=
0x00
;
DataSend
.
Data
[
7
]
=
DcModuleManage
.
Cmd
;
//放入队列
if
(
pdTRUE
!=
xQueueSend
(
DcModeMsg
,
&
DataSend
,
0
))
{
//osDelay(10);
}
}
}
else
{
DcModuleGroup
[
i
].
flag
=
0
;
}
}
else
if
(
DcModuleGroup
[
i
].
status
==
Hold_B
&&
i
!=
2
)
{
if
(
abs
((
s32
)(
DcModuleGroup
[
i
].
Voltage
*
100
)
-
(
s32
)
DcModuleManage_B
.
SetVolt
)
>
10000
)
{
Temp
++
;
for
(
u8
j
=
0
;
j
<
DcModuleGroup
[
i
].
num
;
j
++
)
{
addr
=
DcModuleGroup
[
i
].
modules
[
j
].
addr
;
DataSend
.
Id
=
0x1307C080
+
addr
;
DataSend
.
Len
=
8
;
DataSend
.
Data
[
0
]
=
0x00
;
DataSend
.
Data
[
1
]
=
0x00
;
Value
=
DcModuleAbility
.
MinCurrt
*
100
;
DataSend
.
Data
[
2
]
=
(
u8
)
(
Value
>>
8
);
DataSend
.
Data
[
3
]
=
(
u8
)
(
Value
>>
0
);
Value
=
DcModuleManage_B
.
SetVolt
;
DataSend
.
Data
[
4
]
=
(
u8
)
(
Value
>>
24
);
DataSend
.
Data
[
5
]
=
(
u8
)
(
Value
>>
16
);
DataSend
.
Data
[
6
]
=
(
u8
)
(
Value
>>
8
);
DataSend
.
Data
[
7
]
=
(
u8
)
(
Value
>>
0
);
//放入队列
if
(
pdTRUE
!=
xQueueSend
(
DcModeMsg
,
&
DataSend
,
0
))
{
//osDelay(10);
}
DcModuleManage_B
.
Cmd
=
0x55
;
//开机
DataSend
.
Id
=
0x1307C080
+
addr
;
DataSend
.
Len
=
8
;
DataSend
.
Data
[
0
]
=
0x02
;
DataSend
.
Data
[
1
]
=
0x00
;
DataSend
.
Data
[
2
]
=
0x00
;
DataSend
.
Data
[
3
]
=
0x00
;
DataSend
.
Data
[
4
]
=
0x00
;
DataSend
.
Data
[
5
]
=
0x00
;
DataSend
.
Data
[
6
]
=
0x00
;
DataSend
.
Data
[
7
]
=
DcModuleManage_B
.
Cmd
;
//放入队列
if
(
pdTRUE
!=
xQueueSend
(
DcModeMsg
,
&
DataSend
,
0
))
{
//osDelay(10);
}
}
}
else
{
DcModuleGroup
[
i
].
flag
=
0
;
}
}
}
if
(
Temp
)
return
;
Temp
=
0
;
Temp
=
0
;
//切换继电器输出
for
(
u8
i
=
0
;
i
<
DcModuleGroupSize
;
i
++
)
for
(
u8
i
=
0
;
i
<
DcModuleGroupSize
;
i
++
)
{
{
if
(
status1
[
i
]
!=
DcModuleGroup
[
i
].
status
)
if
(
status1
[
i
]
!=
DcModuleGroup
[
i
].
status
)
...
@@ -508,7 +622,7 @@ void DcModuleCtrlProcess_SmartAllocation(void)
...
@@ -508,7 +622,7 @@ void DcModuleCtrlProcess_SmartAllocation(void)
if
(
Temp
)
if
(
Temp
)
return
;
return
;
if
(
LastFlag_A
!=
DcModuleCtrl
.
CtrlFlag
)
if
(
LastFlag_A
!=
DcModuleCtrl
.
CtrlFlag
)
{
{
LastFlag_A
=
DcModuleCtrl
.
CtrlFlag
;
LastFlag_A
=
DcModuleCtrl
.
CtrlFlag
;
...
@@ -729,6 +843,7 @@ void release_DcModule(u8 flag)
...
@@ -729,6 +843,7 @@ void release_DcModule(u8 flag)
{
{
DcModuleGroup
[
i
].
status
=
Valid
;
DcModuleGroup
[
i
].
status
=
Valid
;
DcModuleManage_B
.
ValidNum
-=
DcModuleGroup
[
i
].
ValidNum
;
DcModuleManage_B
.
ValidNum
-=
DcModuleGroup
[
i
].
ValidNum
;
DcModuleGroup
[
i
].
flag
=
0
;
}
}
}
}
else
if
(
flag
==
2
)
else
if
(
flag
==
2
)
...
@@ -737,6 +852,7 @@ void release_DcModule(u8 flag)
...
@@ -737,6 +852,7 @@ void release_DcModule(u8 flag)
{
{
DcModuleGroup
[
i
].
status
=
Valid
;
DcModuleGroup
[
i
].
status
=
Valid
;
DcModuleManage_B
.
ValidNum
-=
DcModuleGroup
[
i
].
ValidNum
;
DcModuleManage_B
.
ValidNum
-=
DcModuleGroup
[
i
].
ValidNum
;
DcModuleGroup
[
i
].
flag
=
0
;
}
}
}
}
}
}
...
...
DcPillar/Src/SmartAllocation/Drv_SmartAllocation.h
浏览文件 @
257ed546
...
@@ -27,6 +27,7 @@ typedef struct
...
@@ -27,6 +27,7 @@ typedef struct
StructDcModuleUsedStatus
status
;
StructDcModuleUsedStatus
status
;
u32
Voltage
;
u32
Voltage
;
u32
Current
;
u32
Current
;
u8
flag
;
}
StructDcModuleGroup
;
}
StructDcModuleGroup
;
...
...
DcPillar/Src/SmartAllocation/Drv_SmartAllocation_DcModule.c
浏览文件 @
257ed546
...
@@ -263,6 +263,7 @@ void DcModuleSet(EnumSwitchStatus Set, u16 Volt, u16 Currt)
...
@@ -263,6 +263,7 @@ void DcModuleSet(EnumSwitchStatus Set, u16 Volt, u16 Currt)
{
{
DcModuleGroup
[
0
].
status
=
Hold_A
;
DcModuleGroup
[
0
].
status
=
Hold_A
;
DcModuleManage_B
.
ValidNum
-=
DcModuleGroup
[
0
].
ValidNum
;
DcModuleManage_B
.
ValidNum
-=
DcModuleGroup
[
0
].
ValidNum
;
DcModuleManage
.
ValidNum
+=
DcModuleGroup
[
0
].
ValidNum
;
}
}
else
if
(
DcModuleGroup
[
0
].
status
==
Valid
)
else
if
(
DcModuleGroup
[
0
].
status
==
Valid
)
{
{
...
@@ -338,7 +339,7 @@ void DcModule(void const * parameter)
...
@@ -338,7 +339,7 @@ void DcModule(void const * parameter)
//osDelay(15);
//osDelay(15);
DcModuleCtrlProcess_SmartAllocation
();
DcModuleCtrlProcess_SmartAllocation
();
osDelay
(
10
);
osDelay
(
5
);
}
}
}
}
...
@@ -381,6 +382,7 @@ void DcModuleSet_B(EnumSwitchStatus Set, u16 Volt, u16 Currt)
...
@@ -381,6 +382,7 @@ void DcModuleSet_B(EnumSwitchStatus Set, u16 Volt, u16 Currt)
{
{
DcModuleGroup
[
2
].
status
=
Hold_B
;
DcModuleGroup
[
2
].
status
=
Hold_B
;
DcModuleManage
.
ValidNum
-=
DcModuleGroup
[
2
].
ValidNum
;
DcModuleManage
.
ValidNum
-=
DcModuleGroup
[
2
].
ValidNum
;
DcModuleManage_B
.
ValidNum
+=
DcModuleGroup
[
2
].
ValidNum
;
}
}
else
if
(
DcModuleGroup
[
2
].
status
==
Valid
)
else
if
(
DcModuleGroup
[
2
].
status
==
Valid
)
{
{
...
...
DcPillar/Src/SmartAllocation/SmartAllocation_B_ChgRun.c
浏览文件 @
257ed546
...
@@ -119,9 +119,9 @@ void ChgProChgRun_B(StructChargeCtrl_B *pChargeCtrl)
...
@@ -119,9 +119,9 @@ void ChgProChgRun_B(StructChargeCtrl_B *pChargeCtrl)
NeedCurrt
=
abs
((
s32
)
BclMsg_B
.
NeedCurrt
-
4000
);
NeedCurrt
=
abs
((
s32
)
BclMsg_B
.
NeedCurrt
-
4000
);
static
s16
GetCurrt_bak
;
static
s16
GetCurrt_bak
;
static
u32
ReleaseDcModuleTick
=
0
;
if
(
abs
((
s16
)
GetDcModuleCurrt_B
()
-
GetCurrt_bak
)
<
10
//ȶ
if
(
abs
((
s16
)
GetDcModuleCurrt_B
()
-
GetCurrt_bak
)
<
10
//ȶ
&&
(
abs
((
s16
)
NeedCurrt
-
(
s16
)
GetDcModuleCurrt_B
(
))
>
(
DcModuleAbility
.
MaxCurrt
))
&&
(
abs
((
s16
)
NeedCurrt
-
(
s16
)
(
DcModuleAbility
.
MaxCurrt
*
DcModuleManage_B
.
ValidNum
))
>
(
DcModuleAbility
.
MaxCurrt
))
)
)
{
{
if
(
0
==
UniChgTick
)
if
(
0
==
UniChgTick
)
...
@@ -129,41 +129,36 @@ void ChgProChgRun_B(StructChargeCtrl_B *pChargeCtrl)
...
@@ -129,41 +129,36 @@ void ChgProChgRun_B(StructChargeCtrl_B *pChargeCtrl)
if
((
GetSystemTick
()
-
UniChgTick
)
>
(
10
*
1000
))
if
((
GetSystemTick
()
-
UniChgTick
)
>
(
10
*
1000
))
{
{
if
(
NeedCurrt
>
GetDcModuleCurrt_B
())
if
(
NeedCurrt
>
(
DcModuleAbility
.
MaxCurrt
*
DcModuleManage_B
.
ValidNum
)
\
&&
DcModuleGroup
[
0
].
flag
==
0
\
&&
DcModuleGroup
[
1
].
flag
==
0
\
&&
DcModuleGroup
[
3
].
flag
==
0
)
{
{
if
(
DcModuleGroup
[
3
].
status
==
Valid
)
if
(
DcModuleGroup
[
3
].
status
==
Valid
)
{
{
DcModuleGroup
[
3
].
status
=
Hold_B
;
DcModuleGroup
[
3
].
status
=
Hold_B
;
DcModuleManage_B
.
ValidNum
+=
DcModuleGroup
[
3
].
ValidNum
;
//DcModuleManage_B.ValidNum += DcModuleGroup[3].ValidNum;
DcModuleGroup
[
3
].
flag
=
1
;
}
}
else
if
(
DcModuleGroup
[
1
].
status
==
Valid
)
else
if
(
DcModuleGroup
[
1
].
status
==
Valid
)
{
{
DcModuleGroup
[
1
].
status
=
Hold_B
;
DcModuleGroup
[
1
].
status
=
Hold_B
;
DcModuleManage
.
ValidNum
+=
DcModuleGroup
[
1
].
ValidNum
;
//DcModuleManage.ValidNum += DcModuleGroup[1].ValidNum;
DcModuleGroup
[
1
].
flag
=
1
;
}
}
else
if
(
DcModuleGroup
[
0
].
status
==
Valid
)
else
if
(
DcModuleGroup
[
0
].
status
==
Valid
)
{
{
DcModuleGroup
[
0
].
status
=
Hold_B
;
DcModuleGroup
[
0
].
status
=
Hold_B
;
DcModuleManage
.
ValidNum
+=
DcModuleGroup
[
0
].
ValidNum
;
//DcModuleManage.ValidNum += DcModuleGroup[0].ValidNum;
DcModuleGroup
[
0
].
flag
=
1
;
if
(
DcModuleGroup
[
1
].
status
==
Hold_B
)
{
DcModuleGroup
[
1
].
status
=
Valid
;
DcModuleManage
.
ValidNum
-=
DcModuleGroup
[
1
].
ValidNum
;
}
}
}
}
}
else
else
if
(
NeedCurrt
<
(
DcModuleAbility
.
MaxCurrt
*
DcModuleManage_B
.
ValidNum
))
{
}
UniChgTick
=
0
;
}
}
else
if
(
abs
((
s16
)
GetDcModuleCurrt_B
()
-
GetCurrt_bak
)
<
10
//输出电流稳定
&&
(
abs
((
s16
)
NeedCurrt
-
(
s16
)(
DcModuleAbility
.
MaxCurrt
*
DcModuleManage_B
.
ValidNum
))
>
(
DcModuleAbility
.
MaxCurrt
))
)
{
if
(
0
==
ReleaseDcModuleTick
)
ReleaseDcModuleTick
=
GetSystemTick
();
if
((
GetSystemTick
()
-
ReleaseDcModuleTick
)
>
(
10
*
1000
))
{
if
(
NeedCurrt
<
(
DcModuleAbility
.
MaxCurrt
*
DcModuleManage_B
.
ValidNum
))
{
{
if
(
DcModuleGroup
[
0
].
status
==
Hold_B
)
if
(
DcModuleGroup
[
0
].
status
==
Hold_B
)
{
{
...
@@ -181,14 +176,14 @@ void ChgProChgRun_B(StructChargeCtrl_B *pChargeCtrl)
...
@@ -181,14 +176,14 @@ void ChgProChgRun_B(StructChargeCtrl_B *pChargeCtrl)
DcModuleManage
.
ValidNum
-=
DcModuleGroup
[
3
].
ValidNum
;
DcModuleManage
.
ValidNum
-=
DcModuleGroup
[
3
].
ValidNum
;
}
}
}
}
ReleaseDcModuleTick
=
0
;
UniChgTick
=
0
;
}
}
}
}
else
else
{
{
UniChgTick
=
0
;
UniChgTick
=
0
;
ReleaseDcModuleTick
=
0
;
GetCurrt_bak
=
GetDcModuleCurrt_B
();
GetCurrt_bak
=
GetDcModuleCurrt_B
();
}
}
...
...
DcPillar/Src/SmartAllocation/SmartAllocation_ChgRun.c
浏览文件 @
257ed546
...
@@ -127,32 +127,36 @@ void ChgProChgRun(StructChargeCtrl * pChargeCtrl)
...
@@ -127,32 +127,36 @@ void ChgProChgRun(StructChargeCtrl * pChargeCtrl)
NeedCurrt
=
abs
((
s32
)
BclMsg
.
NeedCurrt
-
4000
);
NeedCurrt
=
abs
((
s32
)
BclMsg
.
NeedCurrt
-
4000
);
static
s16
GetCurrt_bak
;
static
s16
GetCurrt_bak
;
static
u32
ReleaseDcModuleTick
=
0
;
if
(
abs
((
s16
)
GetDcModuleCurrt
()
-
GetCurrt_bak
)
<
10
//ȶ
if
(
abs
((
s16
)
GetDcModuleCurrt
()
-
GetCurrt_bak
)
<
10
//ȶ
&&
(
abs
((
s16
)
NeedCurrt
-
(
s16
)
GetDcModuleCurrt
(
))
>
(
DcModuleAbility
.
MaxCurrt
)))
&&
(
abs
((
s16
)
NeedCurrt
-
(
s16
)
(
DcModuleManage
.
ValidNum
*
DcModuleAbility
.
MaxCurrt
))
>
(
DcModuleAbility
.
MaxCurrt
)))
{
{
if
(
0
==
UniChgTick
)
if
(
0
==
UniChgTick
)
UniChgTick
=
GetSystemTick
();
UniChgTick
=
GetSystemTick
();
if
((
GetSystemTick
()
-
UniChgTick
)
>
(
10
*
1000
))
if
((
GetSystemTick
()
-
UniChgTick
)
>
(
10
*
1000
))
{
{
if
(
NeedCurrt
>
GetDcModuleCurrt
())
if
(
NeedCurrt
>
(
DcModuleManage
.
ValidNum
*
DcModuleAbility
.
MaxCurrt
)
\
&&
DcModuleGroup
[
1
].
flag
==
0
\
&&
DcModuleGroup
[
2
].
flag
==
0
\
&&
DcModuleGroup
[
3
].
flag
==
0
)
{
{
if
(
DcModuleGroup
[
1
].
status
==
Valid
)
if
(
DcModuleGroup
[
1
].
status
==
Valid
)
{
{
DcModuleGroup
[
1
].
status
=
Hold_A
;
DcModuleGroup
[
1
].
status
=
Hold_A
;
DcModuleManage
.
ValidNum
+=
DcModuleGroup
[
1
].
ValidNum
;
DcModuleManage
.
ValidNum
+=
DcModuleGroup
[
1
].
ValidNum
;
DcModuleGroup
[
1
].
flag
=
1
;
}
}
else
if
(
DcModuleGroup
[
3
].
status
==
Valid
)
else
if
(
DcModuleGroup
[
3
].
status
==
Valid
)
{
{
DcModuleGroup
[
3
].
status
=
Hold_A
;
DcModuleGroup
[
3
].
status
=
Hold_A
;
DcModuleManage
.
ValidNum
+=
DcModuleGroup
[
3
].
ValidNum
;
DcModuleManage
.
ValidNum
+=
DcModuleGroup
[
3
].
ValidNum
;
DcModuleGroup
[
3
].
flag
=
1
;
}
}
else
if
(
DcModuleGroup
[
2
].
status
==
Valid
)
else
if
(
DcModuleGroup
[
2
].
status
==
Valid
)
{
{
DcModuleGroup
[
2
].
status
=
Hold_A
;
DcModuleGroup
[
2
].
status
=
Hold_A
;
DcModuleManage
.
ValidNum
+=
DcModuleGroup
[
2
].
ValidNum
;
DcModuleManage
.
ValidNum
+=
DcModuleGroup
[
2
].
ValidNum
;
DcModuleGroup
[
2
].
flag
=
1
;
if
(
DcModuleGroup
[
3
].
status
==
Hold_A
)
if
(
DcModuleGroup
[
3
].
status
==
Hold_A
)
{
{
DcModuleGroup
[
3
].
status
=
Valid
;
DcModuleGroup
[
3
].
status
=
Valid
;
...
@@ -160,21 +164,7 @@ void ChgProChgRun(StructChargeCtrl * pChargeCtrl)
...
@@ -160,21 +164,7 @@ void ChgProChgRun(StructChargeCtrl * pChargeCtrl)
}
}
}
}
}
}
else
if
(
NeedCurrt
<
(
DcModuleAbility
.
MaxCurrt
*
DcModuleManage
.
ValidNum
))
UniChgTick
=
0
;
}
}
else
if
(
abs
((
s16
)
GetDcModuleCurrt
()
-
GetCurrt_bak
)
<
10
//ȶ
&&
(
abs
((
s16
)
NeedCurrt
-
(
s16
)(
DcModuleAbility
.
MaxCurrt
*
DcModuleManage
.
ValidNum
))
>
(
DcModuleAbility
.
MaxCurrt
)))
{
if
(
0
==
ReleaseDcModuleTick
)
ReleaseDcModuleTick
=
GetSystemTick
();
if
((
GetSystemTick
()
-
ReleaseDcModuleTick
)
>
(
10
*
1000
))
{
if
(
NeedCurrt
<
(
DcModuleAbility
.
MaxCurrt
*
DcModuleManage
.
ValidNum
))
{
{
if
(
DcModuleGroup
[
2
].
status
==
Hold_A
)
if
(
DcModuleGroup
[
2
].
status
==
Hold_A
)
{
{
...
@@ -192,13 +182,15 @@ void ChgProChgRun(StructChargeCtrl * pChargeCtrl)
...
@@ -192,13 +182,15 @@ void ChgProChgRun(StructChargeCtrl * pChargeCtrl)
DcModuleManage
.
ValidNum
-=
DcModuleGroup
[
1
].
ValidNum
;
DcModuleManage
.
ValidNum
-=
DcModuleGroup
[
1
].
ValidNum
;
}
}
}
}
ReleaseDcModuleTick
=
0
;
UniChgTick
=
0
;
}
}
}
}
else
else
{
{
UniChgTick
=
0
;
UniChgTick
=
0
;
ReleaseDcModuleTick
=
0
;
GetCurrt_bak
=
GetDcModuleCurrt
();
GetCurrt_bak
=
GetDcModuleCurrt
();
}
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论