添加开路电压采集

This commit is contained in:
起床就犯困 2024-12-11 22:11:05 +08:00
parent 26c786e3f6
commit 0929ac0d96
3 changed files with 80 additions and 29 deletions

View File

@ -5,11 +5,12 @@
#include "FM_TIM.h"
#include "comm_types.h"
BOOL getChargControlFlag(void);
void setChargControlFlag(BOOL state);
void bl_chargControl(void);
void endChargWork(void);
void stopChargWork(void);
void beginChargWork(void);
void startChargWork(void);
extern void chargControl(void);

View File

@ -23,7 +23,7 @@ static void BatteryChargControl(void);
static void noBatteryChargControl(void);
static BOOL chargControlFlag = FALSE;
static BOOL getChargControlFlag(void);
// static BOOL getChargControlFlag(void);
void setChargControlFlag(BOOL state);
/**
@ -400,8 +400,8 @@ void mppt_readJust(void)
*/
void endChargWork(void)
{
EN_PWMOUT_Diseable();
pwm_Stop();
setChargControlFlag(FALSE);
setDutyRatioToZero();
setMPPT_Mode(noWork);
beginStartControlTask();
}
@ -414,11 +414,22 @@ void endChargWork(void)
*/
void stopChargWork(void)
{
EN_PWMOUT_Diseable();
pwm_Stop();
setChargControlFlag(FALSE);
setDutyRatioToZero();
setMPPT_Mode(noWork);
}
/**
* @brief
* @param
* @retval
*
*/
void beginChargWork(void)
{
beginStartControlTask();
}
/**
* @brief
* @param
@ -432,8 +443,6 @@ void startChargWork(void)
/**
* @brief
* @param
@ -534,14 +543,14 @@ void chargControlMode(void)
*/
void judgeYNBattery(void)
{
// if (getBatteryVoltage() > 16 || getBatteryVoltage() < 10) {
// setBatteryState(FALSE);
// return;
// }
if (getOutputVoltage() > 16 || getOutputVoltage() < 10) {
if (getBatteryVoltage() > 16 || getBatteryVoltage() < 10) {
setBatteryState(FALSE);
return;
}
// if (getOutputVoltage() > 16 || getOutputVoltage() < 10) {
// setBatteryState(FALSE);
// return;
// }
}
/**
@ -623,7 +632,13 @@ BOOL getChargControlFlag(void)
return chargControlFlag;
}
/**
* @brief
* @param TRUE
* FALSE
* @retval
*
*/
void setChargControlFlag(BOOL state)
{
if (state == TRUE || state == FALSE) {
@ -644,6 +659,7 @@ void bl_chargControl(void)
}
// getCVData();
setBatteryVoltage();
judgeYNBattery();
chargControlMode();

View File

@ -43,8 +43,11 @@ static void Task_softStart(void);
static STR_TimeSliceOffset m_impedanceCalculation;
static void Task_impedanceCalculation(void);
/* 开路电压采集 */
#define collectOpenCircuitVoltage_reloadVal 1000 /* 任务执行间隔 */
#define collectOpenCircuitVoltage_offset 0 /* 任务执行偏移量 */
STR_TimeSliceOffset g_collectOpenCircuitVoltage;
void Task_collectOpenCircuitVoltage(void);
/**
* @brief
@ -56,7 +59,7 @@ void task_Init(void)
{
TimeSliceOffset_Register(&m_runled, Task_Runled, runled_reloadVal, runled_offset);
TimeSliceOffset_Register(&m_wdi, Task_wdi, wdi_reloadVal, wdi_offset);
beginStartControlTask();
TimeSliceOffset_Register(&m_startControl, Task_startControl, startControl_reloadVal, startControl_offset);
TimeSliceOffset_Register(&m_refreshJudgeData, Task_refreshJudgeData, refreshJudgeData_reloadVal, refreshJudgeData_offset);
}
@ -135,7 +138,7 @@ void Task_refreshJudgeData(void)
&& (getHighSideMosTemperature() < g_cfgParameter.HighSideMosTemperature_start)) {
/* 状态处于停止运行则打开充电开关 */
if (getMosTemperState() == mosTemperStop) {
beginChargWork();
}
setMosTemperState(mosTemperStart);
}
@ -147,13 +150,8 @@ void Task_refreshJudgeData(void)
&& getHighSideMosTemperature() > g_cfgParameter.HighSideMosTemperature_stop) {
setMosTemperState(mosTemperStop);
/* 停止充电 */
EN_PWMOUT_Diseable();
pwm_Stop();
setMPPT_Mode(noWork);
}
stopChargWork();
}
}
/**
@ -191,7 +189,8 @@ void Task_startControl(void)
*/
void beginStartControlTask(void)
{
TimeSliceOffset_Register(&m_startControl, Task_startControl, startControl_reloadVal, startControl_offset);
TimeSliceOffset_Register(&m_startControl, Task_startControl, startControl_reloadVal, startControl_offset);
m_startControl.runFlag = 1;
}
/**
@ -218,7 +217,6 @@ void Task_softStart(void)
dutyRatio = 0;
num = 0;
setDutyRatio(0.75f);
set_pwmDutyRatio(getDutyRatio());
if (getBatteryState() == TRUE) {
setMPPT_Mode(MPPT);
@ -230,7 +228,6 @@ void Task_softStart(void)
else {
setDutyRatio(getDutyRatio() + 0.01f);
set_pwmDutyRatio(getDutyRatio());
}
}
/**
@ -296,7 +293,44 @@ void Task_impedanceCalculation(void)
}
}
/**
* @brief
* @retval
*/
void Task_collectOpenCircuitVoltage(void)
{
/* 用于无充电控制时获取开路电压 */
static uint32_t collectOpenCircuitVoltageNoNUM = 0;
/* 用于有充电控制时获取开路电压 */
static uint8_t collectOpenCircuitVoltageYesNUM = 0;
if (FALSE == getChargControlFlag()) {
if (1 <= collectOpenCircuitVoltageNoNUM++) {
setSolarOpenCircuitVoltage();
collectOpenCircuitVoltageNoNUM = 0;
}
collectOpenCircuitVoltageYesNUM = 0;
}
collectOpenCircuitVoltageYesNUM++;
/* 到达开路电压检测时间 */
if (collectOpenCircuitVoltageYesNUM == g_cfgParameter.collectOpenCircuitVoltageTime) {
/* 有电池才进行开路电压检测 */
if (getBatteryState()) {
stopChargWork();
/* 设置延时为1000-500ms */
g_collectOpenCircuitVoltage.count = 500;
}
collectOpenCircuitVoltageYesNUM = 0;
}
/* 检测开路电压 */
if (collectOpenCircuitVoltageYesNUM == g_cfgParameter.collectOpenCircuitVoltageTime + 1) {
setSolarOpenCircuitVoltage();
beginChargWork();
}
}