Commit 91476f87 authored by 时昊's avatar 时昊
parents 653a6169 96ee6f9d
#include "Data_Coolant.h"
#include "Components.h"
#define Coolant_DATA_TIME 25u /*这里填写多长时间采集一个数据,单位ms*/
#define Coolant_DATA_NUM 20u /*燃油电阻采集数据总数 最大255*/
#define Coolant_CAL_START 5u /*数据排序后取中间部分计算平均:起始*/
......@@ -65,7 +63,7 @@ void Coolant_R_Cal(uint8_t deltaTime)
uint32_t temp32;
static uint16_t timeCount = 0;
if(g_u8CoolantStateInitFlag)
if (g_u8CoolantStateInitFlag)
{
CoolantR = ADC_Read_Signal(ADC_CH_COOLANT_TEMP1_R);
}
......@@ -123,26 +121,26 @@ void Coolant_R_Cal(uint8_t deltaTime)
void Coolant_State_Check(uint8_t deltaTime)
{
if (CoolantR < 30)
{ /*短路3*/
g_u16CoolantSensorOpenTime = 0;
g_u16CoolantSensorNormalTime = 0;
if ((g_u16CoolantSensorShortTime > 3000) || ((g_u8CoolantStateInitFlag) && (g_u16CoolantSensorShortTime > 3000)))
{
CoolantSensorState = CoolantSensorShortCircuit;
g_u8DesCoolantSetp = 0;
g_u8CurCoolantSetp = 6;
g_u8CoolantStateInitFlag = 0;
g_u8CoolantInitFlag = 1;
g_u8CoolantDir = Coolant_SEG_UP;
}
else
{
g_u16CoolantSensorShortTime += deltaTime;
}
}
else if (CoolantR > 3100)
{ /*开路 310*/
// if (CoolantR < 30)
// { /*短路3*/
// g_u16CoolantSensorOpenTime = 0;
// g_u16CoolantSensorNormalTime = 0;
// if ((g_u16CoolantSensorShortTime > 3000) || ((g_u8CoolantStateInitFlag) && (g_u16CoolantSensorShortTime > 3000)))
// {
// CoolantSensorState = CoolantSensorShortCircuit;
// g_u8DesCoolantSetp = 0;
// g_u8CurCoolantSetp = 6;
// g_u8CoolantStateInitFlag = 0;
// g_u8CoolantInitFlag = 1;
// g_u8CoolantDir = Coolant_SEG_UP;
// }
// else
// {
// g_u16CoolantSensorShortTime += deltaTime;
// }
// }
if (CoolantR > 3000)
{ /*开路 300*/
g_u16CoolantSensorShortTime = 0;
g_u16CoolantSensorNormalTime = 0;
if ((g_u16CoolantSensorOpenTime > 3000) || ((g_u8CoolantStateInitFlag) && (g_u16CoolantSensorOpenTime > 3000)))
......@@ -179,127 +177,15 @@ void Coolant_Gauges_Cal(uint8_t deltaTime)
{
static uint16_t time = 0;
if ((CoolantSensorState == CoolantSensorNormal) && (CoolantR <= 3100) && (CoolantR >= 30))
{
/*采集完第一组数据后,开始计算燃油格数*/
if (g_u8CoolantADCompleteFlg)
if ((CoolantSensorState == CoolantSensorNormal) && (CoolantR <= 3000)) // && (CoolantR >= 30)
{
if (CoolantR < 180)
{
if (g_u8CoolantInitFlag)
{
CoolantRBak = CoolantR;
}
/*根据回差计算走动方向*/
if (g_u8CoolantDir == Coolant_SEG_UP)
{
if (CoolantR >= CoolantRBak + RETURN_DIFFERENCE)
{
g_u8CoolantDir = Coolant_SEG_DOWN;
CoolantRBak = CoolantR;
}
if (CoolantR < CoolantRBak)
{
CoolantRBak = CoolantR;
}
}
else
{
if (CoolantRBak >= CoolantR + RETURN_DIFFERENCE)
{
g_u8CoolantDir = Coolant_SEG_UP;
CoolantRBak = CoolantR;
}
if (CoolantR > CoolantRBak)
{
CoolantRBak = CoolantR;
}
}
/*计算目标格数*/
if (g_u8CoolantDir == Coolant_SEG_UP)
{
if (((g_u8DesCoolantSetp == 5) || g_u8CoolantInitFlag) && (CoolantR < 30))
{
g_u8DesCoolantSetp = 6;
}
else if (((g_u8DesCoolantSetp == 4) || g_u8CoolantInitFlag) && (CoolantR < 160))
{
g_u8DesCoolantSetp = 5;
}
else if (((g_u8DesCoolantSetp == 3) || g_u8CoolantInitFlag) && (CoolantR < 300))
{
g_u8DesCoolantSetp = 4;
}
else if (((g_u8DesCoolantSetp == 2) || g_u8CoolantInitFlag) && (CoolantR < 500))
{
g_u8DesCoolantSetp = 3;
}
else if (((g_u8DesCoolantSetp == 1) || g_u8CoolantInitFlag) && (CoolantR < 790))
{
g_u8DesCoolantSetp = 2;
}
else if (((g_u8DesCoolantSetp == 0) || g_u8CoolantInitFlag) && (CoolantR <= 3100))
{
g_u8DesCoolantSetp = 1;
}
}
else if (g_u8CoolantDir == Coolant_SEG_DOWN)
{
if (((g_u8DesCoolantSetp == 1) || g_u8CoolantInitFlag) && (CoolantR > 3100))
{
g_u8DesCoolantSetp = 0;
}
else if (((g_u8DesCoolantSetp == 2) || g_u8CoolantInitFlag) && (CoolantR >= 790))
{
g_u8DesCoolantSetp = 1;
}
else if (((g_u8DesCoolantSetp == 3) || g_u8CoolantInitFlag) && (CoolantR >= 500))
{
g_u8DesCoolantSetp = 2;
}
else if (((g_u8DesCoolantSetp == 4) || g_u8CoolantInitFlag) && (CoolantR >= 300))
{
g_u8DesCoolantSetp = 3;
}
else if (((g_u8DesCoolantSetp == 5) || g_u8CoolantInitFlag) && (CoolantR >= 160))
{
g_u8DesCoolantSetp = 4;
}
else if (((g_u8DesCoolantSetp == 6) || g_u8CoolantInitFlag) && (CoolantR >= 30))
{
g_u8DesCoolantSetp = 5;
}
}
g_u8DesCoolantSetp = 1;
}
/*IGN ON 1秒/故障恢复后,开始走格 立即指向当前格 20220704*/
if (Common_GetIgnOnTime() >= 3000)
else if(CoolantR > 220)
{
time += deltaTime;
if (g_u8CoolantInitFlag)
{
g_u8CoolantInitFlag = 0;
time = 0;
g_u8CurCoolantSetp = g_u8DesCoolantSetp;
}
if (time >= 15000)
{ /* 15S变化一格 */
time = 0;
if (g_u8CurCoolantSetp < g_u8DesCoolantSetp)
{
g_u8CurCoolantSetp++;
}
else if (g_u8CurCoolantSetp > g_u8DesCoolantSetp)
{
g_u8CurCoolantSetp--;
}
}
if (g_u8CurCoolantSetp == g_u8DesCoolantSetp)
{
time = 0;
}
g_u8DesCoolantSetp = 0;
}
}
}
......@@ -313,67 +199,12 @@ void Coolant_Cal_Sevice(uint8_t deltaTime)
Coolant_Gauges_Cal(deltaTime);
}
uint8_t Get_CurCoolantSetp(void)
uint8_t Get_CurCoolantSetpState(void)
{
uint8_t u8CurCoolantSetp = g_u8CurCoolantSetp;
if(CoolantSensorState == CoolantSensorOpenCircuit)
{
if(FLASH_SYNC_1Hz)
{
u8CurCoolantSetp = 6;
}
else
{
u8CurCoolantSetp = 0;
}
}
else if(CoolantSensorState == CoolantSensorShortCircuit)
{
if(FLASH_SYNC_1Hz)
{
u8CurCoolantSetp = 7;
}
else
{
u8CurCoolantSetp = 0;
}
}
else if(u8CurCoolantSetp == 1)
{
if(FLASH_SYNC_1Hz)
{
u8CurCoolantSetp = 1;
}
else
{
u8CurCoolantSetp = 0;
}
}
else
{
;
}
return u8CurCoolantSetp;
return g_u8DesCoolantSetp;
}
CoolantSensorSts_t Get_Coolant_Sensor_State(void)
{
uint8_t u8CurCoolantSetp = 0;
if(CoolantSensorState == CoolantSensorOpenCircuit || g_u8CurCoolantSetp == 1u)
{
if(FLASH_SYNC_1Hz)
{
u8CurCoolantSetp = 2;
}
else
{
u8CurCoolantSetp = 0;
}
}
else
{
u8CurCoolantSetp = 1u;
}
return u8CurCoolantSetp;
return CoolantSensorState;
}
......@@ -122,25 +122,25 @@ void Fuel_R_Cal(uint8_t deltaTime)
void Fuel_State_Check(uint8_t deltaTime)
{
if (FuelR < 30)
{ /*短路3*/
g_u16FuelSensorOpenTime = 0;
g_u16FuelSensorNormalTime = 0;
if ((g_u16FuelSensorShortTime > 3000) || ((g_u8FuelStateInitFlag) && (g_u16FuelSensorShortTime > 3000)))
{
FuelSensorState = FuelSensorShortCircuit;
g_u8DesFuelSetp = 0;
g_u8CurFuelSetp = 6;
g_u8FuelStateInitFlag = 0;
g_u8FuelInitFlag = 1;
g_u8FuelDir = FUEL_SEG_UP;
}
else
{
g_u16FuelSensorShortTime += deltaTime;
}
}
else if (FuelR > 5000)
// if (FuelR < 30)
// { /*短路3*/
// g_u16FuelSensorOpenTime = 0;
// g_u16FuelSensorNormalTime = 0;
// if ((g_u16FuelSensorShortTime > 3000) || ((g_u8FuelStateInitFlag) && (g_u16FuelSensorShortTime > 3000)))
// {
// FuelSensorState = FuelSensorShortCircuit;
// g_u8DesFuelSetp = 0;
// g_u8CurFuelSetp = 6;
// g_u8FuelStateInitFlag = 0;
// g_u8FuelInitFlag = 1;
// g_u8FuelDir = FUEL_SEG_UP;
// }
// else
// {
// g_u16FuelSensorShortTime += deltaTime;
// }
// }
if (FuelR > 5000)
{ /*开路 310*/
g_u16FuelSensorShortTime = 0;
g_u16FuelSensorNormalTime = 0;
......@@ -178,7 +178,7 @@ void Fuel_Gauges_Cal(uint8_t deltaTime)
{
static uint16_t time = 0;
if ((FuelSensorState == FuelSensorNormal) && (FuelR <= 3100) && (FuelR >= 30))
if ((FuelSensorState == FuelSensorNormal) && (FuelR <= 5000))// && (FuelR >= 30)
{
/*采集完第一组数据后,开始计算燃油格数*/
if (g_u8FuelADCompleteFlg)
......@@ -298,8 +298,8 @@ void Fuel_Gauges_Cal(uint8_t deltaTime)
g_u8CurFuelSetp = g_u8DesFuelSetp;
}
if (time >= 15000)
{ /* 15S变化一格 */
if (time >= 30000)
{ /* 30S变化一格 */
time = 0;
if (g_u8CurFuelSetp < g_u8DesFuelSetp)
{
......@@ -330,64 +330,10 @@ void Fuel_Cal_Sevice(uint8_t deltaTime)
uint8_t Get_CurFuelSetp(void)
{
uint8_t u8CurFuelSetp = g_u8CurFuelSetp;
if(FuelSensorState == FuelSensorOpenCircuit)
{
if(FLASH_SYNC_1Hz)
{
u8CurFuelSetp = 6;
}
else
{
u8CurFuelSetp = 0;
}
}
else if(FuelSensorState == FuelSensorShortCircuit)
{
if(FLASH_SYNC_1Hz)
{
u8CurFuelSetp = 7;
}
else
{
u8CurFuelSetp = 0;
}
}
else if(u8CurFuelSetp == 1)
{
if(FLASH_SYNC_1Hz)
{
u8CurFuelSetp = 1;
}
else
{
u8CurFuelSetp = 0;
}
}
else
{
;
}
return u8CurFuelSetp;
return g_u8CurFuelSetp;
}
FuelSensorSts_t Get_Fuel_Sensor_State(void)
{
uint8_t u8CurFuelSetp = 0;
if(FuelSensorState == FuelSensorOpenCircuit || g_u8CurFuelSetp == 1u)
{
if(FLASH_SYNC_1Hz)
{
u8CurFuelSetp = 2;
}
else
{
u8CurFuelSetp = 0;
}
}
else
{
u8CurFuelSetp = 1u;
}
return u8CurFuelSetp;
return FuelSensorState;
}
......@@ -18,7 +18,7 @@ typedef struct
uint8_t Result;
}s_AMT630H_FlashCheck_t;
#define AMT630H_REFRESH_TIME 50U
#define AMT630H_REFRESH_TIME 25U
#define AMT630H_ANIMATION_TIME 3000U //ms
#define AMT630H_ANIMATION_PIC_NUM 146U
......
......@@ -3,15 +3,10 @@
typedef enum
{
PIC_DAYTIME_Main_CH =0 ,//日间中文主界面
PIC_NIGHTTIME_Main_CH ,//夜间中文主界面
PIC_DAYTIME_Main_EN ,//日间英文主界面
PIC_NIGHTTIME_Main_EN ,//夜间英文主界面
PIC_DAYTIME_CH ,//日间中文
PIC_NIGHTTIME_CH , //夜间中文
PIC_DAYTIME_EN, //日间英文
PIC_NIGHTTIME_EN, //夜间英文
PIC_DAYTIME_CH =0 ,//日间中文
PIC_NIGHTTIME_CH ,//夜间中文
PIC_DAYTIME_EN ,//日间英文
PIC_NIGHTTIME_EN ,//夜间英文
PIC_Max,
}_Picture_Mode;
......
......@@ -26,6 +26,9 @@
#include "AMT630H\AMT630H_Datas.h"
#include "Data_ESpeed.h"
#include "Data_VSpeed.h"
#include "Data_Coolant.h"
#include "Data_Fuel.h"
#include "Mileage\Services_Mileage_User.h"
#include "BackLight.h"
#include "RTC\RTE_RTC.h"
#include "CAN_Signal\CAN_Lib.h"
......
......@@ -32,6 +32,7 @@ void Sys_10ms_Tasks(void)
Key_Clear_Time();
Key_TimeOut_Service();
Fuel_R_Cal(10u);
Coolant_R_Cal(10u);
}
void Sys_20ms_Tasks(void)
......@@ -54,12 +55,11 @@ void Sys_100ms_Tasks(void)
Triptest = Data_Read_Trip(0);
Get_DisTime_Service();
Fuel_Cal_Sevice(100u);
Coolant_Cal_Sevice(100u);
Services_Mileage_Callback();
RTE_GPIO_Set_Level(Blacklight_PWM, 1);
if(Get_DispVechileSpeed() >= 1500)
{
Data_Mileage_Clear();
}
RTE_GPIO_Config(RTE_GPIO_PORT05_PIN04, GpioOut_High);
}
static uint16_t task_2ms = 0u;
void Sys_Exact_50us_Tasks(void)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment