diff --git a/APP/application/Src/start.c b/APP/application/Src/start.c
index b48d966..e396b4b 100644
--- a/APP/application/Src/start.c
+++ b/APP/application/Src/start.c
@@ -6,6 +6,7 @@
#include "pDebug.h"
#include "parameter.h"
#include "FM_TIM.h"
+#include "inFlash.h"
void startInfo(void)
@@ -63,7 +64,13 @@ void start(void)
startInfo();
// HAL_Delay(5000);
+ // while (1) {
+ // cfgTest();
+ // HAL_Delay(1000);
+ // }
+
+
TimeSliceOffset_Start();
}
diff --git a/APP/businessLogic/Inc/bl_chargControl.h b/APP/businessLogic/Inc/bl_chargControl.h
index d644b7a..a62869e 100644
--- a/APP/businessLogic/Inc/bl_chargControl.h
+++ b/APP/businessLogic/Inc/bl_chargControl.h
@@ -5,6 +5,9 @@
#include "FM_TIM.h"
#include "comm_types.h"
+#define PI_CONTROL_MAX 0.1f
+#define PI_CONTROL_MIN -0.1f
+
BOOL getChargControlFlag(void);
void setChargControlFlag(BOOL state);
void bl_chargControl(void);
diff --git a/APP/businessLogic/Inc/inFlash.h b/APP/businessLogic/Inc/inFlash.h
index 818e3bf..23c1645 100644
--- a/APP/businessLogic/Inc/inFlash.h
+++ b/APP/businessLogic/Inc/inFlash.h
@@ -133,6 +133,7 @@ void read_config_info(config_info *output_config_info);
void saveConfigInfo(config_info *config_info);
void config_info_start(void);
void readFlashContent(config_info *configInfo);
+void cfgTest(void);
void saveLoopImpedance();
BOOL readLoopImpedance();
diff --git a/APP/businessLogic/Src/bl_chargControl.c b/APP/businessLogic/Src/bl_chargControl.c
index 6c178db..19f93e4 100644
--- a/APP/businessLogic/Src/bl_chargControl.c
+++ b/APP/businessLogic/Src/bl_chargControl.c
@@ -22,10 +22,24 @@ static void chargControlMode(void);
static void BatteryChargControl(void);
static void noBatteryChargControl(void);
+static void setPIControlStep(float *PI_step);
+
+
static BOOL chargControlFlag = FALSE;
// static BOOL getChargControlFlag(void);
void setChargControlFlag(BOOL state);
+void setPIControlStep(float *PI_step)
+{
+ if (*PI_step > PI_CONTROL_MAX) {
+ *PI_step = PI_CONTROL_MAX;
+ }
+
+ else if (*PI_step < PI_CONTROL_MIN) {
+ *PI_step = PI_CONTROL_MIN;
+ }
+}
+
/**
* @brief 恒定输入电压
* @param InVoltage 需要控制到的输入电压
@@ -45,6 +59,7 @@ void mppt_constantVoltage(float InVoltage)
error = getSolarInCircuitVoltage() - InVoltage;
stepPwm = kp * error + ki * getSolarInCircuitVoltage();
+ setPIControlStep(&stepPwm);
setDutyRatio((getDutyRatio() + stepPwm));
// if (getMosTemperState() == mosTemperEnd) {
@@ -71,7 +86,8 @@ void mppt_constantVoltageNoBatteryO(float OutVoltage)
outVolt = getOutputVoltage();
error = OutVoltage - outVolt;
stepPwm = kp * error + ki * outVolt;
-
+ setPIControlStep(&stepPwm);
+
setDutyRatio((getDutyRatio() + stepPwm));
}
@@ -95,6 +111,7 @@ void mppt_constantVoltageO(float OutVoltage)
outVolt = getOutputVoltage();
error = OutVoltage - outVolt;
StepPwm = kp * error + ki * outVolt;
+ setPIControlStep(&StepPwm);
/* 当有电池时,输出电压的曲线是先上升后下降 */
if (lastDutyRatio >= getDutyRatio()) {
diff --git a/APP/businessLogic/Src/inFlash.c b/APP/businessLogic/Src/inFlash.c
index 865f268..014d054 100644
--- a/APP/businessLogic/Src/inFlash.c
+++ b/APP/businessLogic/Src/inFlash.c
@@ -53,6 +53,57 @@ void saveConfigInfo(config_info *configInfo)
// save_backups_config_info(config_info);
}
+void cfgTest(void)
+{
+ // uint16_t tempTime = HAL_GetTick();
+ // config_info temp_configInfo;
+ // readFlashContent(&temp_configInfo);
+ // log_info("1 read time : %d \n", HAL_GetTick() - tempTime);
+ // tempTime = HAL_GetTick();
+ // saveConfigInfo(&temp_configInfo);
+ // log_info("1 write time : %d \n", HAL_GetTick() - tempTime);
+
+ // tempTime = HAL_GetTick();
+ // for (int i = 0; i < 10; i++) {
+ // readFlashContent(&temp_configInfo);
+ // saveConfigInfo(&temp_configInfo);
+ // }
+ // log_info("10 time : %d \n", HAL_GetTick() - tempTime);
+
+ // uint16_t tempTime = HAL_GetTick();
+ // float tempF;
+ // readtotalElectricityConsumption(&tempF);
+ // log_info("1 read time : %d \n", HAL_GetTick() - tempTime);
+ // tempTime = HAL_GetTick();
+ // savetotalElectricityConsumption(&tempF);
+ // log_info("1 write time : %d \n", HAL_GetTick() - tempTime);
+
+ // tempTime = HAL_GetTick();
+ // for (int i = 0; i < 10; i++) {
+ // readtotalElectricityConsumption(&tempF);
+ // savetotalElectricityConsumption(&tempF);
+ // }
+ // log_info("10 time : %d \n", HAL_GetTick() - tempTime);
+
+ uint16_t tempTime = HAL_GetTick();
+ timeInfo tempT;
+ readTime(&tempT);
+ log_info("1 read time : %d \n", HAL_GetTick() - tempTime);
+ tempTime = HAL_GetTick();
+ saveTime(&tempT);
+ log_info("1 write time : %d \n", HAL_GetTick() - tempTime);
+
+ tempTime = HAL_GetTick();
+ for (int i = 0; i < 10; i++) {
+ readTime(&tempT);
+ saveTime(&tempT);
+ }
+ log_info("10 time : %d \n", HAL_GetTick() - tempTime);
+
+}
+
+
+
/**
* @brief 检测flash中是否有配置文件或者文件是否有损坏,若两处flash中都损坏则使用默认文件
* @param config_info 读取的配置信息
diff --git a/EWARM/chargeController.ewd b/EWARM/chargeController.ewd
index 2f04eb2..ae5b760 100644
--- a/EWARM/chargeController.ewd
+++ b/EWARM/chargeController.ewd
@@ -36,7 +36,7 @@
@@ -294,7 +294,7 @@