Commit 68bcac1a authored by hu's avatar hu

修改水温最后一个增长

parent 26dce023
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
#include "DisplaySch_user.h" #include "DisplaySch_user.h"
#include "DispSch.h" #include "DispSch.h"
#include "Gauges.h"
//------------------------------------------- //-------------------------------------------
//水温数据处理 //水温数据处理
...@@ -74,6 +75,9 @@ void Coolant_Processing_Service(void) ...@@ -74,6 +75,9 @@ void Coolant_Processing_Service(void)
uint8_t TargetSeg = 0 ; uint8_t TargetSeg = 0 ;
uint8_t Msg_CoolTemp = 0u ; uint8_t Msg_CoolTemp = 0u ;
uint8_t CanStatus = 0u; uint8_t CanStatus = 0u;
static uint16_t TempCurSeg = 0;
static uint16_t TempCurSegTime = 0;
static uint16_t DestPostionOld = 0;
CanStatus = CAN_MSG_Status(ID_CanMsg18FEEE00_Msg_Count); CanStatus = CAN_MSG_Status(ID_CanMsg18FEEE00_Msg_Count);
...@@ -108,7 +112,33 @@ void Coolant_Processing_Service(void) ...@@ -108,7 +112,33 @@ void Coolant_Processing_Service(void)
} }
} }
CoolantVariable.CurSeg = CalCoolant_CurSeg(CoolantVariable.Valid, CoolantVariable.Value); TempCurSeg = CalCoolant_CurSeg(CoolantVariable.Valid, CoolantVariable.Value);
if (
(GetGaugesDirec(TempGauges) == 1) &&
(TempCurSeg == DestPostion[TempGauges] / 10)
)
{
if (DestPostionOld != DestPostion[TempGauges] / 10)
{
DestPostionOld = DestPostion[TempGauges] / 10;
TempCurSegTime = 0;
}
if (TempCurSegTime < 200)
{
TempCurSegTime ++;
}
else
{
CoolantVariable.CurSeg = TempCurSeg;
}
}
else
{
TempCurSegTime = 0;
CoolantVariable.CurSeg = TempCurSeg;
}
} }
/*------------------------------------------------------------------------- /*-------------------------------------------------------------------------
* Function Name : CalCoolant_CurSeg * Function Name : CalCoolant_CurSeg
...@@ -122,15 +152,14 @@ static uint8_t CalCoolant_CurSeg(uint8_t Valid, uint8_t Temp) ...@@ -122,15 +152,14 @@ static uint8_t CalCoolant_CurSeg(uint8_t Valid, uint8_t Temp)
{ {
uint8_t u8Result = 0u; uint8_t u8Result = 0u;
SetGaugesPara(TempGauges, Temp);
if (Valid) if (Valid)
{ {
SetGaugesPara(TempGauges, Temp);
u8Result = GetGaugesCurrentPos(TempGauges) ; u8Result = GetGaugesCurrentPos(TempGauges) ;
} }
else else
{ {
//范围外/CAN中断 //范围外/CAN中断
SetGaugesPara(TempGauges, Temp);
u8Result = 0 ; u8Result = 0 ;
} }
......
...@@ -12,8 +12,6 @@ ...@@ -12,8 +12,6 @@
*/ */
#include "Gauges.h" #include "Gauges.h"
#include "GaugesInterface.h" #include "GaugesInterface.h"
#define GAUGES_TOTAL_NUM 9u
#define GAUGES_INIT_TIME_MAX 3500u
uint16_t GaugesCurrentPos[GAUGES_TOTAL_NUM] ; uint16_t GaugesCurrentPos[GAUGES_TOTAL_NUM] ;
uint16_t BackupDestPostion[GAUGES_TOTAL_NUM]; uint16_t BackupDestPostion[GAUGES_TOTAL_NUM];
uint16_t GaugesDisPos[GAUGES_TOTAL_NUM]; uint16_t GaugesDisPos[GAUGES_TOTAL_NUM];
...@@ -423,15 +421,7 @@ void GaugeMoveing(uint8_t GaugesNum) ...@@ -423,15 +421,7 @@ void GaugeMoveing(uint8_t GaugesNum)
} }
else else
{ {
/*水温表上升最后一格需要调整时间*/ GaugesMoveTimesTmp = GaugesDisDelayMax[DisplayModeTmp[GaugesNum]][GaugesModuleType [GaugesNum]];
if ((GaugesNum == TempGauges) && (DirecSign[TempGauges] == 1u) && (GaugesCurrentPos[TempGauges] == (DestPostion[TempGauges] - 10u)))
{
GaugesMoveTimesTmp = 4000u;
}
else
{
GaugesMoveTimesTmp = GaugesDisDelayMax[DisplayModeTmp[GaugesNum]][GaugesModuleType [GaugesNum]];
}
} }
} }
......
...@@ -22,6 +22,10 @@ ...@@ -22,6 +22,10 @@
/*#define uint32_t unsigned long*/ /*#define uint32_t unsigned long*/
/*??Struct*/ /*??Struct*/
#define GAUGES_TOTAL_NUM 9u
#define GAUGES_INIT_TIME_MAX 3500u
typedef enum typedef enum
{ {
StepperMotor = 0u, StepperMotor = 0u,
...@@ -54,6 +58,7 @@ typedef struct ...@@ -54,6 +58,7 @@ typedef struct
} _GaugesInfoInit; } _GaugesInfoInit;
extern uint16_t DestPostion[GAUGES_TOTAL_NUM];
extern uint8_t QuerySector(_GaugesInfoInit *GParam, uint8_t DirecSignPara, uint8_t SubAscf, uint16_t FunGaugesDataIn); extern uint8_t QuerySector(_GaugesInfoInit *GParam, uint8_t DirecSignPara, uint8_t SubAscf, uint16_t FunGaugesDataIn);
extern uint16_t GetGaugestargetPosSub( _GaugesInfoInit *GParam, uint8_t SubAscf, uint8_t SectorID, uint8_t DirecSignPara, uint16_t FunGaugesDataIn ); extern uint16_t GetGaugestargetPosSub( _GaugesInfoInit *GParam, uint8_t SubAscf, uint8_t SectorID, uint8_t DirecSignPara, uint16_t FunGaugesDataIn );
extern uint16_t GetGaugestargetPos( _GaugesInfoInit *GParam, uint8_t DirecSignPara); extern uint16_t GetGaugestargetPos( _GaugesInfoInit *GParam, uint8_t DirecSignPara);
......
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