Commit 75db2c07 authored by 时昊's avatar 时昊

增加燃油库

parent 60856990
......@@ -2542,6 +2542,34 @@
<FILEKIND>Text</FILEKIND>
<FILEFLAGS></FILEFLAGS>
</FILE>
<FILE>
<PATHTYPE>Name</PATHTYPE>
<PATH>Fuel.c</PATH>
<PATHFORMAT>Windows</PATHFORMAT>
<FILEKIND>Text</FILEKIND>
<FILEFLAGS>Debug</FILEFLAGS>
</FILE>
<FILE>
<PATHTYPE>Name</PATHTYPE>
<PATH>Fuel.h</PATH>
<PATHFORMAT>Windows</PATHFORMAT>
<FILEKIND>Text</FILEKIND>
<FILEFLAGS></FILEFLAGS>
</FILE>
<FILE>
<PATHTYPE>Name</PATHTYPE>
<PATH>Fuel_V3.2.lib</PATH>
<PATHFORMAT>Windows</PATHFORMAT>
<FILEKIND>Unknown</FILEKIND>
<FILEFLAGS>Debug</FILEFLAGS>
</FILE>
<FILE>
<PATHTYPE>Name</PATHTYPE>
<PATH>FuelConfig.h</PATH>
<PATHFORMAT>Windows</PATHFORMAT>
<FILEKIND>Text</FILEKIND>
<FILEFLAGS></FILEFLAGS>
</FILE>
</FILELIST>
<LINKORDER>
<FILEREF>
......@@ -3594,6 +3622,26 @@
<PATH>Simulated_IIC_2_Master.h</PATH>
<PATHFORMAT>Windows</PATHFORMAT>
</FILEREF>
<FILEREF>
<PATHTYPE>Name</PATHTYPE>
<PATH>Fuel.c</PATH>
<PATHFORMAT>Windows</PATHFORMAT>
</FILEREF>
<FILEREF>
<PATHTYPE>Name</PATHTYPE>
<PATH>Fuel.h</PATH>
<PATHFORMAT>Windows</PATHFORMAT>
</FILEREF>
<FILEREF>
<PATHTYPE>Name</PATHTYPE>
<PATH>Fuel_V3.2.lib</PATH>
<PATHFORMAT>Windows</PATHFORMAT>
</FILEREF>
<FILEREF>
<PATHTYPE>Name</PATHTYPE>
<PATH>FuelConfig.h</PATH>
<PATHFORMAT>Windows</PATHFORMAT>
</FILEREF>
</LINKORDER>
</TARGET>
</TARGETLIST>
......@@ -4028,6 +4076,30 @@
<PATH>Flash_synchronizer.c</PATH>
<PATHFORMAT>Windows</PATHFORMAT>
</FILEREF>
<FILEREF>
<TARGETNAME>Standard</TARGETNAME>
<PATHTYPE>Name</PATHTYPE>
<PATH>Fuel.c</PATH>
<PATHFORMAT>Windows</PATHFORMAT>
</FILEREF>
<FILEREF>
<TARGETNAME>Standard</TARGETNAME>
<PATHTYPE>Name</PATHTYPE>
<PATH>Fuel.h</PATH>
<PATHFORMAT>Windows</PATHFORMAT>
</FILEREF>
<FILEREF>
<TARGETNAME>Standard</TARGETNAME>
<PATHTYPE>Name</PATHTYPE>
<PATH>Fuel_V3.2.lib</PATH>
<PATHFORMAT>Windows</PATHFORMAT>
</FILEREF>
<FILEREF>
<TARGETNAME>Standard</TARGETNAME>
<PATHTYPE>Name</PATHTYPE>
<PATH>FuelConfig.h</PATH>
<PATHFORMAT>Windows</PATHFORMAT>
</FILEREF>
<FILEREF>
<TARGETNAME>Standard</TARGETNAME>
<PATHTYPE>Name</PATHTYPE>
......
/******************************************************************************
�� �� ����Fuel.c
����������ȼ��
�� �ߣ�����
�� ����V1.0
�� �ڣ�2016.11.3
******************************************************************************/
#include "Include.h"
volatile uint16_t AnalogFuelSensorRes; //ȼ�ʹ�������ֵ,��λ��0.1 Ohm
unsigned char sFuelInitOver ;
void Fuel_KL30_Read_Config_Init(void)
{
FuelInit_Data.DisplayZoneBoundary[0] = Val_EOL_F102_EFuelSensor();
FuelInit_Data.DisplayZoneBoundary[1] = Val_EOL_F102_EFuelSensor(); ; //ָE�� 10
FuelInit_Data.DisplayZoneBoundary[2] = Val_EOL_F102_EighthFuelSensor(); //ָ1/8 20
FuelInit_Data.DisplayZoneBoundary[3] = Val_EOL_F102_QuarterFuelSensor(); //ָ2/8 30
FuelInit_Data.DisplayZoneBoundary[4] = Val_EOL_F102_Three8FuelSensor(); //ָ3/8 40
FuelInit_Data.DisplayZoneBoundary[5] = Val_EOL_F102_AHalfFuelSensor(); //ָ4/8 50
FuelInit_Data.DisplayZoneBoundary[6] = Val_EOL_F102_Five8FuelSensor(); //5/8 60
FuelInit_Data.DisplayZoneBoundary[7] = Val_EOL_F102_Three3FuelSensor(); //6/8 70
FuelInit_Data.DisplayZoneBoundary[8] = Val_EOL_F102_Seven8FuelSensor(); //7/8 80
FuelInit_Data.DisplayZoneBoundary[9] = Val_EOL_F102_FFuelSensor(); //8/8 90
FuelInit_Data.DisplayZoneBoundary[10] = Val_EOL_F102_FFuelSensor(); //ƫ��
FuelInit_Data.FuelCapacityBoundary[0] = 0;
FuelInit_Data.FuelCapacityBoundary[1] = Val_EOL_F102_EFuelLevel(); //E
FuelInit_Data.FuelCapacityBoundary[2] = Val_EOL_F102_EighthFuelLevel(); //1
FuelInit_Data.FuelCapacityBoundary[3] = Val_EOL_F102_QuarterFuelLevel(); //2
FuelInit_Data.FuelCapacityBoundary[4] = Val_EOL_F102_Three8FuelLevel(); //3
FuelInit_Data.FuelCapacityBoundary[5] = Val_EOL_F102_AHalfFuelLevel(); //4
FuelInit_Data.FuelCapacityBoundary[6] = Val_EOL_F102_Five8FuelLevel(); //5
FuelInit_Data.FuelCapacityBoundary[7] = Val_EOL_F102_Three4FuelLevel(); //6
FuelInit_Data.FuelCapacityBoundary[8] = Val_EOL_F102_Seven8FuelLevel(); //7
FuelInit_Data.FuelCapacityBoundary[9] = Val_EOL_F102_FFuelLevel(); //8 F
FuelInit_Data.FuelCapacityBoundary[10] = Val_EOL_F102_FFuelLevel();//
FuelInit_DataBackup.DisplayZoneBoundary[0] = FuelInit_Data.DisplayZoneBoundary[0];
FuelInit_DataBackup.DisplayZoneBoundary[1] = FuelInit_Data.DisplayZoneBoundary[1];
FuelInit_DataBackup.DisplayZoneBoundary[2] = FuelInit_Data.DisplayZoneBoundary[2];
FuelInit_DataBackup.DisplayZoneBoundary[3] = FuelInit_Data.DisplayZoneBoundary[3];
FuelInit_DataBackup.DisplayZoneBoundary[4] = FuelInit_Data.DisplayZoneBoundary[4];
FuelInit_DataBackup.DisplayZoneBoundary[5] = FuelInit_Data.DisplayZoneBoundary[5];
FuelInit_DataBackup.DisplayZoneBoundary[6] = FuelInit_Data.DisplayZoneBoundary[6];
FuelInit_DataBackup.DisplayZoneBoundary[7] = FuelInit_Data.DisplayZoneBoundary[7];
FuelInit_DataBackup.DisplayZoneBoundary[8] = FuelInit_Data.DisplayZoneBoundary[8];
FuelInit_DataBackup.DisplayZoneBoundary[9] = FuelInit_Data.DisplayZoneBoundary[9];
FuelInit_DataBackup.DisplayZoneBoundary[10] = FuelInit_Data.DisplayZoneBoundary[10] ;
FuelInit_DataBackup.FuelCapacityBoundary[0] = FuelInit_Data.FuelCapacityBoundary[0] ;
FuelInit_DataBackup.FuelCapacityBoundary[1] = FuelInit_Data.FuelCapacityBoundary[1] ;
FuelInit_DataBackup.FuelCapacityBoundary[2] = FuelInit_Data.FuelCapacityBoundary[2] ;
FuelInit_DataBackup.FuelCapacityBoundary[3] = FuelInit_Data.FuelCapacityBoundary[3] ;
FuelInit_DataBackup.FuelCapacityBoundary[4] = FuelInit_Data.FuelCapacityBoundary[4] ;
FuelInit_DataBackup.FuelCapacityBoundary[5] = FuelInit_Data.FuelCapacityBoundary[5] ;
FuelInit_DataBackup.FuelCapacityBoundary[6] = FuelInit_Data.FuelCapacityBoundary[6] ;
FuelInit_DataBackup.FuelCapacityBoundary[7] = FuelInit_Data.FuelCapacityBoundary[7] ;
FuelInit_DataBackup.FuelCapacityBoundary[8] = FuelInit_Data.FuelCapacityBoundary[8] ;
FuelInit_DataBackup.FuelCapacityBoundary[9] = FuelInit_Data.FuelCapacityBoundary[9] ;
FuelInit_DataBackup.FuelCapacityBoundary[10] = FuelInit_Data.FuelCapacityBoundary[10] ;
}
void Fuel_Change_Config(void)
{
FuelInit_Data.DisplayZoneBoundary[0] = Val_EOL_F102_EFuelSensor();
FuelInit_Data.DisplayZoneBoundary[1] = Val_EOL_F102_EFuelSensor(); ; //ָE�� 10
FuelInit_Data.DisplayZoneBoundary[2] = Val_EOL_F102_EighthFuelSensor(); //ָ1/8 20
FuelInit_Data.DisplayZoneBoundary[3] = Val_EOL_F102_QuarterFuelSensor(); //ָ2/8 30
FuelInit_Data.DisplayZoneBoundary[4] = Val_EOL_F102_Three8FuelSensor(); //ָ3/8 40
FuelInit_Data.DisplayZoneBoundary[5] = Val_EOL_F102_AHalfFuelSensor(); //ָ4/8 50
FuelInit_Data.DisplayZoneBoundary[6] = Val_EOL_F102_Five8FuelSensor(); //5/8 60
FuelInit_Data.DisplayZoneBoundary[7] = Val_EOL_F102_Three3FuelSensor(); //6/8 70
FuelInit_Data.DisplayZoneBoundary[8] = Val_EOL_F102_Seven8FuelSensor(); //7/8 80
FuelInit_Data.DisplayZoneBoundary[9] = Val_EOL_F102_FFuelSensor(); //8/8 90
FuelInit_Data.DisplayZoneBoundary[10] = Val_EOL_F102_FFuelSensor(); //ƫ��
FuelInit_Data.FuelCapacityBoundary[1] = Val_EOL_F102_EFuelLevel(); //E
FuelInit_Data.FuelCapacityBoundary[2] = Val_EOL_F102_EighthFuelLevel(); //1
FuelInit_Data.FuelCapacityBoundary[3] = Val_EOL_F102_QuarterFuelLevel(); //2
FuelInit_Data.FuelCapacityBoundary[4] = Val_EOL_F102_Three8FuelLevel(); //3
FuelInit_Data.FuelCapacityBoundary[5] = Val_EOL_F102_AHalfFuelLevel(); //4
FuelInit_Data.FuelCapacityBoundary[6] = Val_EOL_F102_Five8FuelLevel(); //5
FuelInit_Data.FuelCapacityBoundary[7] = Val_EOL_F102_Three4FuelLevel(); //6
FuelInit_Data.FuelCapacityBoundary[8] = Val_EOL_F102_Seven8FuelLevel(); //7
FuelInit_Data.FuelCapacityBoundary[9] = Val_EOL_F102_FFuelLevel(); //8 F
FuelInit_Data.FuelCapacityBoundary[10] = Val_EOL_F102_FFuelLevel();//
}
void Fuel_KL15_Change_Config_Init(void)
{
if( (FuelInit_DataBackup.DisplayZoneBoundary[0] != FuelInit_Data.DisplayZoneBoundary[0]) ||
(FuelInit_DataBackup.DisplayZoneBoundary[1] != FuelInit_Data.DisplayZoneBoundary[1] )||
(FuelInit_DataBackup.DisplayZoneBoundary[2] != FuelInit_Data.DisplayZoneBoundary[2] )||
(FuelInit_DataBackup.DisplayZoneBoundary[3] != FuelInit_Data.DisplayZoneBoundary[3] )||
(FuelInit_DataBackup.DisplayZoneBoundary[4] != FuelInit_Data.DisplayZoneBoundary[4] )||
(FuelInit_DataBackup.DisplayZoneBoundary[5] != FuelInit_Data.DisplayZoneBoundary[5])||
(FuelInit_DataBackup.DisplayZoneBoundary[6] != FuelInit_Data.DisplayZoneBoundary[6])||
(FuelInit_DataBackup.DisplayZoneBoundary[7] != FuelInit_Data.DisplayZoneBoundary[7])||
(FuelInit_DataBackup.DisplayZoneBoundary[8] != FuelInit_Data.DisplayZoneBoundary[8])||
(FuelInit_DataBackup.DisplayZoneBoundary[9] != FuelInit_Data.DisplayZoneBoundary[9])||
(FuelInit_DataBackup.DisplayZoneBoundary[10] != FuelInit_Data.DisplayZoneBoundary[10] )||
(FuelInit_DataBackup.FuelCapacityBoundary[2] != FuelInit_Data.FuelCapacityBoundary[2] )||
(FuelInit_DataBackup.FuelCapacityBoundary[3] != FuelInit_Data.FuelCapacityBoundary[3] )||
(FuelInit_DataBackup.FuelCapacityBoundary[4] != FuelInit_Data.FuelCapacityBoundary[4] )||
(FuelInit_DataBackup.FuelCapacityBoundary[5] != FuelInit_Data.FuelCapacityBoundary[5] )||
(FuelInit_DataBackup.FuelCapacityBoundary[6] != FuelInit_Data.FuelCapacityBoundary[6] )||
(FuelInit_DataBackup.FuelCapacityBoundary[7] != FuelInit_Data.FuelCapacityBoundary[7] )||
(FuelInit_DataBackup.FuelCapacityBoundary[8] != FuelInit_Data.FuelCapacityBoundary[8] )||
(FuelInit_DataBackup.FuelCapacityBoundary[9] != FuelInit_Data.FuelCapacityBoundary[9] )||
(FuelInit_DataBackup.FuelCapacityBoundary[10] !=FuelInit_Data.FuelCapacityBoundary[10] ) )
{
FuelInit_DataBackup.DisplayZoneBoundary[0] = FuelInit_Data.DisplayZoneBoundary[0];
FuelInit_DataBackup.DisplayZoneBoundary[1] = FuelInit_Data.DisplayZoneBoundary[1];
FuelInit_DataBackup.DisplayZoneBoundary[2] = FuelInit_Data.DisplayZoneBoundary[2];
FuelInit_DataBackup.DisplayZoneBoundary[3] = FuelInit_Data.DisplayZoneBoundary[3];
FuelInit_DataBackup.DisplayZoneBoundary[4] = FuelInit_Data.DisplayZoneBoundary[4];
FuelInit_DataBackup.DisplayZoneBoundary[5] = FuelInit_Data.DisplayZoneBoundary[5];
FuelInit_DataBackup.DisplayZoneBoundary[6] = FuelInit_Data.DisplayZoneBoundary[6];
FuelInit_DataBackup.DisplayZoneBoundary[7] = FuelInit_Data.DisplayZoneBoundary[7];
FuelInit_DataBackup.DisplayZoneBoundary[8] = FuelInit_Data.DisplayZoneBoundary[8];
FuelInit_DataBackup.DisplayZoneBoundary[9] = FuelInit_Data.DisplayZoneBoundary[9];
FuelInit_DataBackup.DisplayZoneBoundary[10] = FuelInit_Data.DisplayZoneBoundary[10];
FuelInit_DataBackup.FuelCapacityBoundary[1] = FuelInit_Data.FuelCapacityBoundary[1] ;
FuelInit_DataBackup.FuelCapacityBoundary[2] = FuelInit_Data.FuelCapacityBoundary[2] ;
FuelInit_DataBackup.FuelCapacityBoundary[3] = FuelInit_Data.FuelCapacityBoundary[3] ;
FuelInit_DataBackup.FuelCapacityBoundary[4] = FuelInit_Data.FuelCapacityBoundary[4] ;
FuelInit_DataBackup.FuelCapacityBoundary[5] = FuelInit_Data.FuelCapacityBoundary[5] ;
FuelInit_DataBackup.FuelCapacityBoundary[6] = FuelInit_Data.FuelCapacityBoundary[6] ;
FuelInit_DataBackup.FuelCapacityBoundary[7] = FuelInit_Data.FuelCapacityBoundary[7] ;
FuelInit_DataBackup.FuelCapacityBoundary[8] = FuelInit_Data.FuelCapacityBoundary[8] ;
FuelInit_DataBackup.FuelCapacityBoundary[9] = FuelInit_Data.FuelCapacityBoundary[9] ;
FuelInit_DataBackup.FuelCapacityBoundary[10] = FuelInit_Data.FuelCapacityBoundary[10] ;
SET_YB_InitData();
}
}
void PowerDN_Time_Add(void)
{
uint8_t i;
if (SYS_OPR_STAT_IGN_ON)
{
}
else
{
SetPowerSt(0);
for (i = 0; i < 10; i++)
{
AFCTimerCall();
}
FuelFSM();
}
}
//INT16U FUE_REST = 760;;
void GET_Data_For_YB(void) //10ms����
{
if(SYS_OPR_STAT_IGN_ON)
{
SetPowerSt(1);
//FuelPARA.RPM = DataESpeedDisp;//���ת��// DataEspeedDisp 1
FuelPARA.RPM = 1;//���ת��// DataEspeedDisp 1
FuelPARA.Speed = DataVSpeedDisp/10 ;//���� 1
FuelPARA.CurODO = NVM_ODO_VALUE * 100; //��λΪ�� 1m
FuelPARA.FuleConsume = 0;
SetAFCPara((AFC_PARA *)&FuelPARA);
AFCTimerCall();
SaveSampleVal(AnalogFuelSensorRes);
FuelFSM();
}
}
void SET_YB_InitData(void)
{
//#if(IC_Current == LD01 )
FuelData.Flag = 0;
FuelInit.FuelOpenCircuitR = Fuel_Open_Res;
FuelInit.FuelShortCircuitR = Fuel_Short_Cricuit_Res;
FuelInit.DisplayZoneBoundary[0] = (FuelInit_DataBackup.DisplayZoneBoundary[0] +55)*10;
FuelInit.DisplayZoneBoundary[1] = FuelInit_DataBackup.DisplayZoneBoundary[1] *10;
FuelInit.DisplayZoneBoundary[2] = FuelInit_DataBackup.DisplayZoneBoundary[2] *10;
FuelInit.DisplayZoneBoundary[3] = FuelInit_DataBackup.DisplayZoneBoundary[3] *10;
FuelInit.DisplayZoneBoundary[4] = FuelInit_DataBackup.DisplayZoneBoundary[4] *10;
FuelInit.DisplayZoneBoundary[5] = FuelInit_DataBackup.DisplayZoneBoundary[5] *10;
FuelInit.DisplayZoneBoundary[6] = FuelInit_DataBackup.DisplayZoneBoundary[6] *10;
FuelInit.DisplayZoneBoundary[7] = FuelInit_DataBackup.DisplayZoneBoundary[7] *10;
FuelInit.DisplayZoneBoundary[8] = FuelInit_DataBackup.DisplayZoneBoundary[8] *10;
FuelInit.DisplayZoneBoundary[9] = FuelInit_DataBackup.DisplayZoneBoundary[9] *10;
FuelInit.DisplayZoneBoundary[10] = (FuelInit_DataBackup.DisplayZoneBoundary[10]-8)*10;
FuelInit.FuelCapacityBoundary[0] = 0;
FuelInit.FuelCapacityBoundary[1] = (FuelInit_DataBackup.FuelCapacityBoundary[1]-FuelInit_DataBackup.FuelCapacityBoundary[1]) *10;
FuelInit.FuelCapacityBoundary[2] = (FuelInit_DataBackup.FuelCapacityBoundary[2]-12) *10;
FuelInit.FuelCapacityBoundary[3] = (FuelInit_DataBackup.FuelCapacityBoundary[3]-12) *10;
FuelInit.FuelCapacityBoundary[4] = (FuelInit_DataBackup.FuelCapacityBoundary[4]-12) *10;
FuelInit.FuelCapacityBoundary[5] = (FuelInit_DataBackup.FuelCapacityBoundary[5]-12) *10;
FuelInit.FuelCapacityBoundary[6] = (FuelInit_DataBackup.FuelCapacityBoundary[6]-12) *10;
FuelInit.FuelCapacityBoundary[7] = (FuelInit_DataBackup.FuelCapacityBoundary[7] -12) *10;
FuelInit.FuelCapacityBoundary[8] = (FuelInit_DataBackup.FuelCapacityBoundary[8] -12)*10;
FuelInit.FuelCapacityBoundary[9] = (FuelInit_DataBackup.FuelCapacityBoundary[9] -12)*10;
FuelInit.FuelCapacityBoundary[10] = (FuelInit_DataBackup.FuelCapacityBoundary[10]-12+ 8)*10;
InitFuelParamter(&FuelInit);
FuelAFCInit.CalcAFCMaxNum = 100;
FuelAFCInit.AFCMin = 30;
FuelAFCInit.AFCMax = 199;
FuelAFCInit.AFCPreinstall = 60;
FuelAFCInit.CurODO = NVM_ODO_VALUE * 100;
FuelAFCInit.MaxDRMileage = 100000;
InitAFC((AFC_INIT *)&FuelAFCInit);
SetFuelSensorRecoverGroupCnt(40);
SetFuelSensorOpenCircuitGroupCnt(40);
SetFuelSensorShortCircuitGroupCnt(40);
}
void GET_Data_To_DSP(void) //100ms����
{
uint32_t m32 = 0;
if((SYS_OPR_STAT_IGN_ON)&&(g_u8SelfLampTimes >= 60))
{
Fuel_Change_Config();
FuelData.Res_Get = GetFuelResistance();
FuelData.Sensor_State = FuelSensorState(FuelData.Res_Get);
if(FuelData.Sensor_State == FuelSensorNormal)
{
FuelData.Res_Valid = 1;
if((FuelData.Res_Get >= Fuel_Short_Cricuit_Res)&& (FuelData.Res_Get < Fuel_Open_Res))
{
FuelData.Flag = 1;
FuelData.Step_Get = GetFuelStep();
FuelData.Capacity_Get = GetFuelCapacityVal();
//�ⷢʣ�������ٷֱ�
FuelData.Capacity_Val = GetFuelCapacityVal();
FuelData.Res_Dis = FuelData.Res_Get ;
if(FuelData.Res_Get <= FuelInit.DisplayZoneBoundary[9])
{
FuelData.Precent_Val = 100;
}
else if(FuelData.Res_Get >= FuelInit.DisplayZoneBoundary[1])
{
FuelData.Precent_Val = 0;
}
else
{
m32 = FuelData.Capacity_Val ;
m32 *= 1000 ;
m32 /= (FuelInit.FuelCapacityBoundary[9]);
m32 += 5;
m32 /= 10;
FuelData.Precent_Val = (uint8_t)m32;
}
}
else //ʵ�ʿ�·�����Ǵ�����״̬û�з����ı�
{
FuelData.Flag = 0;
}
}
else if(FuelData.Sensor_State == FuelSensorShortCircuit)
{
FuelData.Step_Get = 0;
FuelData.Res_Dis = 0 ;
FuelData.Res_Valid = 1;
FuelData.Flag = 0;
FuelData.Precent_Val = 0;
FuelData.Capacity_Get = 0;
}
else if(FuelData.Sensor_State == FuelSensorOpenCircuit)
{
FuelData.Step_Get = 0;
FuelData.Res_Dis = 5000 ;
FuelData.Res_Valid = 1;
FuelData.Flag = 0;
FuelData.Precent_Val = 0;
FuelData.Capacity_Get = 0;
}
else
{
FuelData.Step_Get = 0;
FuelData.Res_Valid = 0;
FuelData.Flag = 0;
FuelData.Precent_Val = 0;
FuelData.Capacity_Get = 0;
}
}
else
{
FuelData.Flag = 0;
FuelData.Step_Get = 0;
FuelData.Res_Valid = 0;
}
}
unsigned char FuelSensorState(unsigned int vFuelR)
{
unsigned char sFuelSensor;
sFuelSensor = GetFuelSensorState();
// sFuelSensor_1 = GetFuelSensorState();
if(sFuelInitOver == 0)
{
if((sFuelSensor == FuelSensorNormal) && (vFuelR <= Fuel_Open_Res) && (vFuelR >= Fuel_Short_Cricuit_Res))
{
sFuelInitOver = 1;
}
else
{
if((sFuelSensor == FuelSensorShortCircuit) || (sFuelSensor == FuelSensorOpenCircuit))
{
sFuelInitOver = 1;
}
else
{
sFuelSensor = FuelSensorPreFault;
}
}
}
return sFuelSensor;
}
/******************************************************************************
�� �� ����Fuel.h
����������ȼ�����ݴ���
�� �ߣ�����
�� ����V1.0
�� �ڣ�2016.11.3
******************************************************************************/
#ifndef _FUEL_H_
#define _FUEL_H_
//EXTERN INT8U AFCInitSts;
EXTERN AFC_PARA FuelPARA;
EXTERN FuelStruct FuelInit;
EXTERN FuelStruct FuelInit_Data;
EXTERN FuelStruct FuelInit_DataBackup;
EXTERN AFC_INIT FuelAFCInit;
EXTERN uint16_t DataFuelConsOf100msUL;
#define Fuel_Short_Cricuit_Res 0
#define Fuel_Open_Res 5000
typedef struct
{
INT8U Sensor_State;
INT8U Step_Get;
INT16U Res_Dis;
INT8U Seg_Get;
INT8U Seg_Val;
INT16U Res_Get;
INT16U Capacity_Get;
INT16U Capacity_Val;
INT8U Precent_Get;
INT8U Precent_Val;
INT16U Flag;
INT8U Res_Valid;
INT16U AFC_Get;
}_Fuel_Data_Struct;
EXTERN _Fuel_Data_Struct FuelData;
//EXTERN INT8U Fuel_Sensor_State;//ȼ�ʹ�����״̬
extern volatile uint16_t AnalogFuelSensorRes; //ȼ�ʹ�������ֵ,��λ��0.1 Ohm
//extern unsigned char sFuelInitOver ;
void Fuel_KL15_Change_Config_Init(void);
void Fuel_Change_Config(void);
void Fuel_KL30_Read_Config_Init(void);
void SET_YB_InitData(void);
void GET_Data_For_YB(void); //10ms����
void GET_Data_To_DSP(void); //100ms����
void PowerDN_Time_Add(void) ;
unsigned char FuelSensorState(unsigned int vFuelR);
#endif
\ No newline at end of file
#ifndef _FUELCONFIG_H
#define _FUELCONFIG_H
typedef unsigned int INT16U;
typedef unsigned char INT8U;
typedef unsigned long INT32U;
//Fuel Config
typedef struct _FuelStruct {
INT16U FuelShortCircuitR;
INT16U FuelOpenCircuitR;
INT16U DisplayZoneBoundary[11];
INT16U FuelCapacityBoundary[11];
}FuelStruct;
extern void InitFuelParamter(FuelStruct *para);
extern void SaveSampleVal(INT16U FuelResistance); //unit:ohm,accuracy:0.1
extern void FuelFSM(void);
extern void SetRPM(INT16U n); //Call only when the fuel is used,unit:RPM,accuracy:1
extern void SetSpeed(INT8U n); //Call only when the fuel is used,unit:km/h,accuracy:1
extern void SetFuelSensorRecoverGroupCnt(INT16U n); //1:500ms,2:1000ms,3:1500ms.......,range:5s(10)-30min(3600)
extern void SetFuelSensorOpenCircuitGroupCnt(INT16U n); //1:500ms,2:1000ms,3:1500ms.......,range:5s(10)-30min(3600)
extern void SetFuelSensorShortCircuitGroupCnt(INT16U n); //1:500ms,2:1000ms,3:1500ms.......,range:5s(10)-30min(3600)
extern void SetPowerSt(INT8U n);
extern INT8U GetFuelSeg(void); //Segment, range:0~8
extern INT8U GetFuelStep(void); //Pointer or Mono TFT stepless,range:0,10~90, 0,10:E, 90:F
extern INT16U GetFuelCapacityVal(void); //unit:L,accuracy:0.1
extern void SetDisplayStepMinVal(INT8U n); //Set GetFuelStep() min val,range:0~80,default 10
extern void SetCalcResistanceRange(INT8U min, INT8U max); //Call this function after calling InitFuelParamter();
//Set the range of calculated resistance value, default:40-120, max number:240;
//ResistanceRange[0]:Sample resistance minimum,fuel high;
//ResistanceRange[239]:Sample resistance maximum, fuel low.
enum {
FuelSensorNormal,
FuelSensorShortCircuit,
FuelSensorOpenCircuit,
FuelSensorPreFault,
};
extern INT8U GetFuelSensorState(void);
enum {
FUEL_ST_FIRST_POWER_UP, //0
FUEL_ST_IGN_ON_PROCESS, //1
FUEL_ST_POWER_ON_ADD_FUEL, //2
FUEL_ST_VEHICLE_RUN, //3
FUEL_ST_IGN_OFF_PROCESS, //4
FUEL_ST_IGN_OFF, //5
};
extern INT8U GetFuelFSM_St(void);
extern INT16U GetFuelResistance(void); //unit:ohm,accuracy:0.1
extern INT8U GetPowerDn(void);
extern INT16U GetPowerDownTimeCnt(void);
// AFC & DrivingRange
typedef struct _AFC_INIT {
INT8U CalcAFCMaxNum; //max 100km,default 50
INT16U AFCMin; //unit:L,accuracy:0.1
INT16U AFCMax; //unit:L,accuracy:0.1
INT16U AFCPreinstall; //unit:L,accuracy:0.1
INT32U CurODO; // unit:m,accuracy:1
INT32U MaxDRMileage; //unit:km,accuracy:0.01
}AFC_INIT;
extern void InitAFC(AFC_INIT *data);
extern void ResetAFC(AFC_INIT *data);
typedef struct _AFC_PARA {
INT32U CurODO; // unit:m,accuracy:1
INT16U FuleConsume; // unit:ul,accuracy:1
INT16U RPM; // unit:RPM,accuracy:1
INT8U Speed; // unit:km/h,accuracy:1
}AFC_PARA;
extern void SetAFCPara(AFC_PARA *data);
extern void AFCTimerCall(void); //must per 10ms interrupt
extern INT16U GetDRMileage(void); //unit:km,accuracy:1
extern INT16U GetCurAFC(void); //unit:L,accuracy:0.1
extern INT16U GetAFCSumH(void);
extern INT16U GetAFCSumL(void);
#endif
......@@ -6353,7 +6353,7 @@ if(GUIBackUp.Language != MenuData.Language)
void GUI_Setting_Menu3_IC_Res_Display(void)
{
#if 0
#if 1
INT8U Refresh;
INT16U Res;
Res = 0;
......
......@@ -24,7 +24,7 @@
������.��dz��FIFO���ý��п��ܵ���ͻ���Ի�ͼ�п����������FIFO��������ʧ,
������Щ����û�б���Ӧ;�������FIFO������ᵼ���ڴ���˷�
******************************************************************************/
#define TFT_LCD_REQ_FIFO_MAX_DEPTH 125
#define TFT_LCD_REQ_FIFO_MAX_DEPTH 100
//#define TFT_LCD_DRAW_MAX_DEPTH 160
/******************************************************************************
��ͼ����
......
......@@ -148,8 +148,8 @@
//#include "FuelConfig.h"
//#include "Fuel.h"
#include "FuelConfig.h"
#include "Fuel.h"
#include "Sound_Pop.h"
......
......@@ -67,7 +67,7 @@ void main(void)
}
TASK_10ms_GROUP_3
{
//GET_Data_For_YB();
GET_Data_For_YB();
NM_D_BusOff_Recover();
}
TASK_10ms_GROUP_4
......@@ -139,7 +139,7 @@ void main(void)
TASK_100ms_GROUP_0
{
RTI_Timing_Service();
//GET_Data_To_DSP();
GET_Data_To_DSP();
}
TASK_100ms_GROUP_1
......
No preview for this file type
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -19,10 +19,10 @@ SEGMENTS /* here all RAM/ROM areas of the device are listed. Used in PLACEMENT b
RAM = READ_WRITE DATA_NEAR 0x2000 TO 0x3FFF ALIGN 2;
/* non-banked FLASH */
ROM_4000 = READ_ONLY DATA_NEAR IBCC_NEAR 0x4000 TO 0x7FFF ALIGN 2;
//ROM_4000 = READ_ONLY DATA_NEAR IBCC_NEAR 0x4000 TO 0x77FF ALIGN 2;
//ROM_4000_1 = READ_ONLY DATA_NEAR IBCC_NEAR 0x7800 TO 0x7BFF FILL 0xFF;
//ROM_4000_2 = READ_ONLY DATA_NEAR IBCC_NEAR 0x7C00 TO 0x7FFF ALIGN 2;
//ROM_4000 = READ_ONLY DATA_NEAR IBCC_NEAR 0x4000 TO 0x7FFF ALIGN 2;
ROM_4000 = READ_ONLY DATA_NEAR IBCC_NEAR 0x4000 TO 0x77FF ALIGN 2;
ROM_4000_1 = READ_ONLY DATA_NEAR IBCC_NEAR 0x7800 TO 0x7BFF FILL 0xFF;
ROM_4000_2 = READ_ONLY DATA_NEAR IBCC_NEAR 0x7C00 TO 0x7FFF ALIGN 2;
ROM_C000 = READ_ONLY DATA_NEAR IBCC_NEAR 0xC000 TO 0xFAFF ALIGN 2 FILL 0xFF;
/* VECTORS = READ_ONLY 0xFF00 TO 0xFFFF; intentionally not defined: used for VECTOR commands below */
//OSVECTORS = READ_ONLY 0xFF10 TO 0xFFFF; /* OSEK interrupt vectors (use your vector.o) */
......@@ -75,12 +75,12 @@ PLACEMENT /* here all predefined and user segments are placed into the SEGMENTS
/* in case you want to use ROM_4000 here as well, make sure
that all files (incl. library files) are compiled with the
option: -OnB=b */
INTO ROM_C000, ROM_4000,/*ROM_4000_2*/;
INTO ROM_C000, ROM_4000,ROM_4000_2;
MAPDATA_ROM INTO PAGE_FC,PAGE_FB,PAGE_FA,PAGE_F9,PAGE_F7,PAGE_F0_0;
DEFAULT_ROM INTO
/*ROM_4000_2,*/ PAGE_FE,PAGE_F6, PAGE_F5, PAGE_F4, PAGE_F3, PAGE_F2, PAGE_F1, PAGE_F0,ROM_4000 ;
ROM_4000_2, PAGE_FE,PAGE_F6, PAGE_F5, PAGE_F4, PAGE_F3, PAGE_F2, PAGE_F1, PAGE_F0,ROM_4000 ;
//.stackstart, /* eventually used for OSEK kernel awareness: Main-Stack Start */
SSTACK, /* allocate stack first to avoid overwriting variables on overflow */
......@@ -93,10 +93,10 @@ PLACEMENT /* here all predefined and user segments are placed into the SEGMENTS
RAM_FD;
DISTRIBUTE DISTRIBUTE_INTO
/*ROM_4000_2,*/ROM_4000, PAGE_FE,PAGE_FB, PAGE_FA, PAGE_F9, PAGE_F7,
ROM_4000_2,ROM_4000, PAGE_FE,PAGE_FB, PAGE_FA, PAGE_F9, PAGE_F7,
PAGE_F6, PAGE_F5, PAGE_F4, PAGE_F3, PAGE_F2, PAGE_F1, PAGE_F0;
CONST_DISTRIBUTE DISTRIBUTE_INTO
/*ROM_4000_2, */ ROM_4000, PAGE_FE,PAGE_FB, PAGE_FA, PAGE_F9, PAGE_F7,
ROM_4000_2, ROM_4000, PAGE_FE,PAGE_FB, PAGE_FA, PAGE_F9, PAGE_F7,
PAGE_F6, PAGE_F5, PAGE_F4, PAGE_F3, PAGE_F2, PAGE_F1, PAGE_F0;
DATA_DISTRIBUTE DISTRIBUTE_INTO
RAM, RAM_FD;
......
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