Commit 0d1dff89 authored by hu's avatar hu

调整指示灯,调整硬线

parent e339f97b
No preview for this file type
This source diff could not be displayed because it is too large. You can view the blob instead.
project .intvect 1536
project .text 298988
project .text 299276
project .rodata 412383
project .secinfo 120
project .syscall 6
......
......@@ -3,89 +3,89 @@
#include "GaugesInterface.h"
#include "TimerB.h"
#define VEH_FILTER_LEN 7
#define VEH_FILTER_LEN 7
static struct
{
uint8_t Count ;
uint16_t Data[VEH_FILTER_LEN] ;
uint8_t Count;
uint16_t Data[VEH_FILTER_LEN];
} VehcleFilter;
static uint32_t SPEED_PPK = 159246ul ;
static uint32_t SPEED_RADIO = 637 ;
static uint32_t SPEED_PPK = 159246ul;
static uint32_t SPEED_RADIO = 637;
uint16_t Vehicle_ACT_Speed;
uint16_t Vehicle_DISP_Speed;
uint8_t VehicleSpeedValid;
uint8_t Vehicle_CurSeg ;
uint8_t Vehicle_CurSeg;
static uint16_t Cal_VehSpeed(uint16_t Fre, uint8_t Len);
void Speed_KL30_Init(void)
{
uint8_t i ;
uint8_t i;
Vehicle_ACT_Speed = 0u;
Vehicle_DISP_Speed = 0u;
VehicleSpeedValid = 0u;
Vehicle_CurSeg = 0u;
VehcleFilter.Count = 0 ;
for (i = 0 ; i < VEH_FILTER_LEN ; i ++)
VehcleFilter.Count = 0;
for (i = 0; i < VEH_FILTER_LEN; i++)
{
VehcleFilter.Data[ i ] = 0 ;
VehcleFilter.Data[i] = 0;
}
Set_Speed_PPK(159246ul);
}
void Speed_KL15_ON_Init(void)
{
uint8_t i ;
uint8_t i;
Vehicle_ACT_Speed = 0u;
Vehicle_DISP_Speed = 0u;
VehicleSpeedValid = 0u;
Vehicle_CurSeg = 0u;
VehcleFilter.Count = 0 ;
for (i = 0 ; i < VEH_FILTER_LEN ; i ++)
VehcleFilter.Count = 0;
for (i = 0; i < VEH_FILTER_LEN; i++)
{
VehcleFilter.Data[ i ] = 0 ;
VehcleFilter.Data[i] = 0;
}
Veh_Fre_Init(Get_Speed_PPK() / 10);
}
void Speed_KL15_OFF_Init(void)
{
uint8_t i ;
uint8_t i;
Vehicle_ACT_Speed = 0u;
Vehicle_DISP_Speed = 0u;
VehicleSpeedValid = 0u;
Vehicle_CurSeg = 0u;
VehcleFilter.Count = 0 ;
for (i = 0 ; i < VEH_FILTER_LEN ; i ++)
VehcleFilter.Count = 0;
for (i = 0; i < VEH_FILTER_LEN; i++)
{
VehcleFilter.Data[ i ] = 0 ;
VehcleFilter.Data[i] = 0;
}
}
void Speed_Wakeup_Init(void)
{
uint8_t i ;
uint8_t i;
Vehicle_ACT_Speed = 0u;
Vehicle_DISP_Speed = 0u;
VehicleSpeedValid = 0u;
Vehicle_CurSeg = 0u;
for (i = 0 ; i < VEH_FILTER_LEN ; i ++)
for (i = 0; i < VEH_FILTER_LEN; i++)
{
VehcleFilter.Data[ i ] = 0 ;
VehcleFilter.Data[i] = 0;
}
}
void Speed_Sleep_Init(void)
{
uint8_t i ;
uint8_t i;
Vehicle_ACT_Speed = 0u;
Vehicle_DISP_Speed = 0u;
VehicleSpeedValid = 0u;
Vehicle_CurSeg = 0u;
for (i = 0 ; i < VEH_FILTER_LEN ; i ++)
for (i = 0; i < VEH_FILTER_LEN; i++)
{
VehcleFilter.Data[ i ] = 0 ;
VehcleFilter.Data[i] = 0;
}
}
......@@ -93,9 +93,9 @@ void Speed_Processing_Service(void)
{
uint32_t VehValTmp = 0u;
uint32_t PPK = 0u;
//if(Get_Veh_Fre_Event())
// if(Get_Veh_Fre_Event())
//{
// VehValTmp = Cal_VehSpeed(Get_Veh_Fre(),VEH_FILTER_LEN) ;
// VehValTmp = Cal_VehSpeed(Get_Veh_Fre(),VEH_FILTER_LEN) ;
// VehValTmp *= 3600 ;
// VehValTmp *= 10 ;
......@@ -108,68 +108,64 @@ void Speed_Processing_Service(void)
PPK = Get_Speed_PPK();
VehValTmp = Cal_Veh_Frequency();
VehValTmp *= 3600 ;
VehValTmp *= 10 ;
VehValTmp *= 10 ;
VehValTmp /= PPK ;
VehValTmp *= 3600;
VehValTmp *= 10;
VehValTmp *= 10;
VehValTmp /= PPK;
//VehValTmp = Cal_Veh_Frequency();
//VehValTmp *= 3600 ;
//VehValTmp *= 10 ;
//VehValTmp /= PPK ;
// VehValTmp = Cal_Veh_Frequency();
// VehValTmp *= 3600 ;
// VehValTmp *= 10 ;
// VehValTmp /= PPK ;
if (VehValTmp > 2250)
{
VehValTmp = 0 ;
VehicleSpeedValid = 0 ;
VehValTmp = 0;
VehicleSpeedValid = 0;
}
else
{
VehicleSpeedValid = 1 ;
VehicleSpeedValid = 1;
}
Vehicle_ACT_Speed = VehValTmp ;
Vehicle_ACT_Speed = VehValTmp;
//传入表头
//传入表头
VehValTmp = VehSpeedAmplification((uint16_t)VehValTmp);
SetGaugesPara(VehGauges, (uint16_t)VehValTmp);
//获得显示格和显示车速
//获得显示格和显示车速
Vehicle_CurSeg = GetGaugesCurrentPos(VehGauges);
Vehicle_DISP_Speed = GetVehDisVal(Vehicle_CurSeg, &GaugesInfo_Init_Table[VehGauges]);
}
static uint16_t Cal_VehSpeed(uint16_t Fre, uint8_t Len)
{
static uint16_t u16Result = 0 ;
static uint16_t u16Result = 0;
if (Fre > 2000)
{
//do nothing
// do nothing
}
else
{
if (VehcleFilter.Count < Len)
{
VehcleFilter.Data[VehcleFilter.Count] = Fre ;
VehcleFilter.Count ++ ;
VehcleFilter.Data[VehcleFilter.Count] = Fre;
VehcleFilter.Count++;
}
else
{
VehcleFilter.Count = 0 ;
VehcleFilter.Count = 0;
App_SortNByte(VehcleFilter.Data, Len);
u16Result = VehcleFilter.Data[2] ;
u16Result += VehcleFilter.Data[3] ;
u16Result += VehcleFilter.Data[3] ;
u16Result += VehcleFilter.Data[4] ;
u16Result /= 4 ;
u16Result = VehcleFilter.Data[2];
u16Result += VehcleFilter.Data[3];
u16Result += VehcleFilter.Data[3];
u16Result += VehcleFilter.Data[4];
u16Result /= 4;
}
}
return u16Result ;
return u16Result;
}
/*-------------------------------------------------------------------------
......@@ -182,7 +178,7 @@ static uint16_t Cal_VehSpeed(uint16_t Fre, uint8_t Len)
--------------------------------------------------------------------------*/
void Set_Speed_PPK(uint32_t PPK)
{
SPEED_PPK = PPK ;
SPEED_PPK = PPK;
}
/*-------------------------------------------------------------------------
* Function Name : Set_Speed_PPK
......@@ -194,7 +190,7 @@ void Set_Speed_PPK(uint32_t PPK)
--------------------------------------------------------------------------*/
void Set_Speed_Ratio(uint32_t Ratio)
{
SPEED_RADIO = Ratio ;
SPEED_RADIO = Ratio;
}
/*-------------------------------------------------------------------------
* Function Name : Get_Speed_PPK
......@@ -207,8 +203,8 @@ void Set_Speed_Ratio(uint32_t Ratio)
uint32_t Get_Speed_PPK(void)
{
uint32_t u32Result = 0u;
u32Result = SPEED_PPK ;
return u32Result ;
u32Result = SPEED_PPK;
return u32Result;
}
uint16_t Speed_Get_ActualValue(void)
......@@ -233,7 +229,7 @@ uint16_t Speed_Get_Display_Value(void)
--------------------------------------------------------------------------*/
uint8_t Speed_Get_CurSeg(void)
{
return Vehicle_CurSeg ;
return Vehicle_CurSeg;
}
/*-------------------------------------------------------------------------
* Function Name : Speed_Get_Valid
......@@ -245,7 +241,5 @@ uint8_t Speed_Get_CurSeg(void)
--------------------------------------------------------------------------*/
uint8_t Speed_Get_Valid(void)
{
return VehicleSpeedValid ;
return VehicleSpeedValid;
}
#include "GaugesInterface.h"
GetVehDisValGetVehDisVal#include "GaugesInterface.h"
#include "Menu.h"
/**@struct _GaugesInfoInit
*this is _GaugesInfoInit
......
......@@ -6,14 +6,6 @@
#include "TYW_stdint.h"
#include "string.h"
/*
Note ! NOW LineIn only support 254 channel!!!!!
Note ! NOW LineIn only support 254 channel!!!!!
Note ! NOW LineIn only support 254 channel!!!!!
Note ! NOW LineIn only support 254 channel!!!!!
Note ! NOW LineIn only support 254 channel!!!!!
*/
/*所有硬线输入的索引*/
typedef enum
{
......
......@@ -65,8 +65,8 @@ const Line_In_Attribute_st_t g_stLineInAttribute[LINE_IN_MAX] =
{ LINE_IN_LEVEL_HIGH, 200U, 0U, LINE_IN_IG_ON, LINE_IN_Get_ILLUMINATION,}, /*A06 ILLUMINATION 背光有效*/
{ LINE_IN_LEVEL_LOW, 200U, 0U, LINE_IN_IG_ON, LINE_IN_Get_RET_BLENDING,}, /*A10 RET_BLENDING*/
{ LINE_IN_LEVEL_LOW, 200U, 0U, LINE_IN_IG_ON, LINE_IN_Get_BRAKE,}, /*A21 BRAKE*/
{ LINE_IN_LEVEL_HIGH, 200U, 0U, LINE_IN_IG_ONOFF, LINE_IN_Get_TURN_R,}, /*A26 TURN_R*/
{ LINE_IN_LEVEL_HIGH, 200U, 0U, LINE_IN_IG_ONOFF, LINE_IN_Get_TURN_L,}, /*A27 TURN_L*/
{ LINE_IN_LEVEL_HIGH, 20U, 0U, LINE_IN_IG_ONOFF, LINE_IN_Get_TURN_R,}, /*A26 TURN_R*/
{ LINE_IN_LEVEL_HIGH, 20U, 0U, LINE_IN_IG_ONOFF, LINE_IN_Get_TURN_L,}, /*A27 TURN_L*/
{ LINE_IN_LEVEL_LOW, 200U, 0U, LINE_IN_IG_ON, LINE_IN_Get_ABS_DETECT,}, /*A33 ABS_DETECT*/
{ LINE_IN_LEVEL_HIGH, 200U, 0U, LINE_IN_IG_ON, LINE_IN_Get_PTO,}, /*B01 PTO*/
{ LINE_IN_LEVEL_LOW, 200U, 0U, LINE_IN_IG_ON, LINE_IN_Get_GLOW,}, /*B05 GLOW*/
......
......@@ -109,6 +109,8 @@ Power_Status_t Power_KL30_Init ( void )
BL_ACC_EN = 1U; /*8867 使能*/
Fuel_VCC05V_OUT_EN = 1U ; /*燃油电源 使能*/
AIR_5V_OUT_EN = 1u; /*气压 5V*/
ACC5V_LED_PWM_MCU = 1u;
IS31_Init();
Sound_Scheduler_Init();
Sound_Player_Init();
......@@ -146,6 +148,7 @@ void Power_Sleep_Init(void)
BL_ACC_EN = 1U; /*8867 使能*/
Fuel_VCC05V_OUT_EN = 1U ; /*燃油电源 使能*/
AIR_5V_OUT_EN = 1u; /*气压 5V*/
ACC5V_LED_PWM_MCU = 1u;
IS31_Shutdown();
......@@ -198,6 +201,7 @@ Power_Status_t Power_Wakeup_Init ( void )
BL_ACC_EN = 1U; /*8867 使能*/
Fuel_VCC05V_OUT_EN = 1U ; /*燃油电源 使能*/
AIR_5V_OUT_EN = 1u; /*气压 5V*/
ACC5V_LED_PWM_MCU = 1u;
IS31_Init();
/*报警调度初始化*/
......
......@@ -8,34 +8,25 @@
#include "Data_VehicleSpeed.h"
#include "GaugesInterface.h"
#define PRI_SEG_NUM_MAX 17U
#define SEC_SEG_NUM_MAX 17U
#define COOLANT_SEG_NUM_MAX 12U
#define FUEL_SEG_NUM_MAX 12U
#define TACHO_SEG_NUM_MAX 27U
#define VEH_SEG_NUM_MAX 30U
#define PRI_SEG_NUM_MAX 17U
#define SEC_SEG_NUM_MAX 17U
#define COOLANT_SEG_NUM_MAX 12U
#define FUEL_SEG_NUM_MAX 12U
#define TACHO_SEG_NUM_MAX 27U
#define VEH_SEG_NUM_MAX 30U
static void Seg_General_Digit_Display(uint32_t Digit, uint8_t Len, uint8_t Blank, uint8_t *DigitBuf, uint8_t *Reg);
static void Seg_Digit_1_Disp(uint8_t Digit);
static void Seg_Digit_2_Disp(uint8_t Digit);
static void Seg_Digit_3_Disp(uint8_t Digit);
static void SEG_PRI_Display(uint8_t Value, uint8_t Valid, uint8_t seg_status);
static void SEG_SEC_Display(uint8_t Value, uint8_t Valid, uint8_t seg_status);
static void SEG_Coolant_Display(uint8_t Value, uint8_t Valid, uint8_t seg_status);
static void SEG_Fuel_Display(uint8_t Value, uint8_t Valid, uint8_t seg_status);
static void SEG_Tacho_Display(uint8_t Value, uint8_t Valid, uint8_t seg_status);
static void SEG_VehicleSpeed_Display(uint8_t Value, uint8_t Valid, uint8_t seg_status);
static void SEG_VehicleSpeed_Num(uint16_t Value, uint8_t Valid);
static void Seg_General_Digit_Display(uint32_t Digit, uint8_t Len, uint8_t Blank , uint8_t *DigitBuf , uint8_t *Reg );
static void Seg_Digit_1_Disp (uint8_t Digit);
static void Seg_Digit_2_Disp (uint8_t Digit);
static void Seg_Digit_3_Disp (uint8_t Digit);
static void SEG_PRI_Display(uint8_t Value, uint8_t Valid,uint8_t seg_status) ;
static void SEG_SEC_Display(uint8_t Value, uint8_t Valid,uint8_t seg_status) ;
static void SEG_Coolant_Display(uint8_t Value, uint8_t Valid,uint8_t seg_status) ;
static void SEG_Fuel_Display(uint8_t Value, uint8_t Valid,uint8_t seg_status) ;
static void SEG_Tacho_Display(uint8_t Value, uint8_t Valid,uint8_t seg_status) ;
static void SEG_VehicleSpeed_Display(uint8_t Value, uint8_t Valid,uint8_t seg_status) ;
static void SEG_VehicleSpeed_Num(uint16_t Value, uint8_t Valid) ;
/*ZH:*/
/*****************************************************************************
某某灯(红)//_1_差速器锁
******************************************************************************/
......@@ -96,7 +87,7 @@ void SEG_LED_SVS_T(uint8_t seg_status)
/*****************************************************************************
//_9_上坡起步辅助系统
******************************************************************************/
void SEG_LED_H_S_A__T(uint8_t seg_status)
void SEG_LED_H_S_A_T(uint8_t seg_status)
{
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_158, seg_status);
}
......@@ -273,7 +264,7 @@ void SEG_LED_BRAKE_LOCK_R(uint8_t seg_status)
******************************************************************************/
void SEG_LED_AIR_SUS_R(uint8_t seg_status)
{
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_34, seg_status);
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_34, seg_status);
}
/*****************************************************************************
//_36_拖车ABS系统故障报警
......@@ -312,7 +303,6 @@ void SEG_LED_TURN_LEFT(uint8_t seg_status)
}
/*:ZH*/
/*****************************************************************************
常显示
******************************************************************************/
......@@ -365,27 +355,38 @@ void SEG_C25_Disp(uint8_t seg_status)
#define NUM_3J(x) SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_59, x);
#define NUM_3K(x) SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_64, x);
#define NUM_3L(x) SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_65, x);
// L K J //H G F E D C B A
//0 1 1 1 //1 0 1 1 1 1 1 1 // 0x07Bf
//1 1 1 0 //0 0 0 0 0 1 1 0 // 0x0606
//2 0 1 1 //0 1 0 1 1 0 1 1 // 0x035b
//3 1 1 0 //0 1 0 0 1 1 1 1 // 0x064f
//4 1 1 1 //0 1 1 0 0 1 1 0 // 0x0766
//5 0 1 1 //0 1 1 0 1 1 0 1 // 0x036d
//6 0 1 1 //1 1 1 1 1 1 0 1 // 0x03fd
//7 1 1 0 //0 0 0 0 0 1 1 1 // 0x0607
//8 0 1 1 //0 1 1 1 1 1 1 1 // 0x037f
//9 1 1 1 //0 1 1 0 1 1 1 1 // 0x076f
// L K J //H G F E D C B A
// 0 1 1 1 //1 0 1 1 1 1 1 1 // 0x07Bf
// 1 1 1 0 //0 0 0 0 0 1 1 0 // 0x0606
// 2 0 1 1 //0 1 0 1 1 0 1 1 // 0x035b
// 3 1 1 0 //0 1 0 0 1 1 1 1 // 0x064f
// 4 1 1 1 //0 1 1 0 0 1 1 0 // 0x0766
// 5 0 1 1 //0 1 1 0 1 1 0 1 // 0x036d
// 6 0 1 1 //1 1 1 1 1 1 0 1 // 0x03fd
// 7 1 1 0 //0 0 0 0 0 1 1 1 // 0x0607
// 8 0 1 1 //0 1 1 1 1 1 1 1 // 0x037f
// 9 1 1 1 //0 1 1 0 1 1 1 1 // 0x076f
// 0 0 0 0 0 0 0 0 0 0 0 // 0x0000
//'-' 0 0 0 0 1 0 0 0 0 0 0 // 0x0040
static const uint16_t Seg_Digit_Nomal[] =
{
/**0** | **1** |**2** | **3** | **4** | **5** | **6** | **7** | **8** | **9** | **10 black** | **11 --** | **all light --**/
0x07Bf , 0x0606 , 0x035b , 0x064f , 0x0766 , 0x036d , 0x03fd , 0x0607 , 0x037f , 0x076f , 0x0000 , 0x0040 , 0xffff ,
} ;
static void Seg_Digit_1_Disp (uint8_t Digit)
0x07Bf,
0x0606,
0x035b,
0x064f,
0x0766,
0x036d,
0x03fd,
0x0607,
0x037f,
0x076f,
0x0000,
0x0040,
0xffff,
};
static void Seg_Digit_1_Disp(uint8_t Digit)
{
uint8_t MUN_A;
uint8_t MUN_B;
......@@ -399,32 +400,31 @@ static void Seg_Digit_1_Disp (uint8_t Digit)
uint8_t MUN_K;
uint8_t MUN_L;
MUN_A = ( ((1 << 0) & Seg_Digit_Nomal[Digit]) >> 0) ? 7 : 0;
MUN_B = ( ((1 << 1) & Seg_Digit_Nomal[Digit]) >> 1) ? 7 : 0;
MUN_C = ( ((1 << 2) & Seg_Digit_Nomal[Digit]) >> 2) ? 7 : 0;
MUN_D = ( ((1 << 3) & Seg_Digit_Nomal[Digit]) >> 3) ? 7 : 0;
MUN_E = ( ((1 << 4) & Seg_Digit_Nomal[Digit]) >> 4) ? 7 : 0;
MUN_F = ( ((1 << 5) & Seg_Digit_Nomal[Digit]) >> 5) ? 7 : 0;
MUN_G = ( ((1 << 6) & Seg_Digit_Nomal[Digit]) >> 6) ? 7 : 0;
MUN_H = ( ((1 << 7) & Seg_Digit_Nomal[Digit]) >> 7) ? 7 : 0;
MUN_J = ( ((1 << 8) & Seg_Digit_Nomal[Digit]) >> 8) ? 7 : 0;
MUN_K = ( ((1 << 9) & Seg_Digit_Nomal[Digit]) >> 9) ? 7 : 0;
MUN_L = ( ((1 << 10) & Seg_Digit_Nomal[Digit]) >> 10) ? 7 : 0;
NUM_1A (MUN_A);
NUM_1B (MUN_B);
NUM_1C (MUN_C);
NUM_1D (MUN_D);
NUM_1E (MUN_E);
NUM_1F (MUN_F);
NUM_1G (MUN_G);
NUM_1H (MUN_H);
NUM_1J (MUN_J);
NUM_1K (MUN_K);
NUM_1L (MUN_L);
MUN_A = (((1 << 0) & Seg_Digit_Nomal[Digit]) >> 0) ? 7 : 0;
MUN_B = (((1 << 1) & Seg_Digit_Nomal[Digit]) >> 1) ? 7 : 0;
MUN_C = (((1 << 2) & Seg_Digit_Nomal[Digit]) >> 2) ? 7 : 0;
MUN_D = (((1 << 3) & Seg_Digit_Nomal[Digit]) >> 3) ? 7 : 0;
MUN_E = (((1 << 4) & Seg_Digit_Nomal[Digit]) >> 4) ? 7 : 0;
MUN_F = (((1 << 5) & Seg_Digit_Nomal[Digit]) >> 5) ? 7 : 0;
MUN_G = (((1 << 6) & Seg_Digit_Nomal[Digit]) >> 6) ? 7 : 0;
MUN_H = (((1 << 7) & Seg_Digit_Nomal[Digit]) >> 7) ? 7 : 0;
MUN_J = (((1 << 8) & Seg_Digit_Nomal[Digit]) >> 8) ? 7 : 0;
MUN_K = (((1 << 9) & Seg_Digit_Nomal[Digit]) >> 9) ? 7 : 0;
MUN_L = (((1 << 10) & Seg_Digit_Nomal[Digit]) >> 10) ? 7 : 0;
NUM_1A(MUN_A);
NUM_1B(MUN_B);
NUM_1C(MUN_C);
NUM_1D(MUN_D);
NUM_1E(MUN_E);
NUM_1F(MUN_F);
NUM_1G(MUN_G);
NUM_1H(MUN_H);
NUM_1J(MUN_J);
NUM_1K(MUN_K);
NUM_1L(MUN_L);
}
static void Seg_Digit_2_Disp (uint8_t Digit)
static void Seg_Digit_2_Disp(uint8_t Digit)
{
uint8_t MUN_A;
uint8_t MUN_B;
......@@ -438,32 +438,32 @@ static void Seg_Digit_2_Disp (uint8_t Digit)
uint8_t MUN_K;
uint8_t MUN_L;
MUN_A = ( ((1 << 0) & Seg_Digit_Nomal[Digit]) >> 0) ? 7 : 0;
MUN_B = ( ((1 << 1) & Seg_Digit_Nomal[Digit]) >> 1) ? 7 : 0;
MUN_C = ( ((1 << 2) & Seg_Digit_Nomal[Digit]) >> 2) ? 7 : 0;
MUN_D = ( ((1 << 3) & Seg_Digit_Nomal[Digit]) >> 3) ? 7 : 0;
MUN_E = ( ((1 << 4) & Seg_Digit_Nomal[Digit]) >> 4) ? 7 : 0;
MUN_F = ( ((1 << 5) & Seg_Digit_Nomal[Digit]) >> 5) ? 7 : 0;
MUN_G = ( ((1 << 6) & Seg_Digit_Nomal[Digit]) >> 6) ? 7 : 0;
MUN_H = ( ((1 << 7) & Seg_Digit_Nomal[Digit]) >> 7) ? 7 : 0;
MUN_J = ( ((1 << 8) & Seg_Digit_Nomal[Digit]) >> 8) ? 7 : 0;
MUN_K = ( ((1 << 9) & Seg_Digit_Nomal[Digit]) >> 9) ? 7 : 0;
MUN_L = ( ((1 << 10) & Seg_Digit_Nomal[Digit]) >> 10) ? 7 : 0;
NUM_2A (MUN_A);
NUM_2B (MUN_B);
NUM_2C (MUN_C);
NUM_2D (MUN_D);
NUM_2E (MUN_E);
NUM_2F (MUN_F);
NUM_2G (MUN_G);
NUM_2H (MUN_H);
NUM_2J (MUN_J);
NUM_2K (MUN_K);
NUM_2L (MUN_L);
MUN_A = (((1 << 0) & Seg_Digit_Nomal[Digit]) >> 0) ? 7 : 0;
MUN_B = (((1 << 1) & Seg_Digit_Nomal[Digit]) >> 1) ? 7 : 0;
MUN_C = (((1 << 2) & Seg_Digit_Nomal[Digit]) >> 2) ? 7 : 0;
MUN_D = (((1 << 3) & Seg_Digit_Nomal[Digit]) >> 3) ? 7 : 0;
MUN_E = (((1 << 4) & Seg_Digit_Nomal[Digit]) >> 4) ? 7 : 0;
MUN_F = (((1 << 5) & Seg_Digit_Nomal[Digit]) >> 5) ? 7 : 0;
MUN_G = (((1 << 6) & Seg_Digit_Nomal[Digit]) >> 6) ? 7 : 0;
MUN_H = (((1 << 7) & Seg_Digit_Nomal[Digit]) >> 7) ? 7 : 0;
MUN_J = (((1 << 8) & Seg_Digit_Nomal[Digit]) >> 8) ? 7 : 0;
MUN_K = (((1 << 9) & Seg_Digit_Nomal[Digit]) >> 9) ? 7 : 0;
MUN_L = (((1 << 10) & Seg_Digit_Nomal[Digit]) >> 10) ? 7 : 0;
NUM_2A(MUN_A);
NUM_2B(MUN_B);
NUM_2C(MUN_C);
NUM_2D(MUN_D);
NUM_2E(MUN_E);
NUM_2F(MUN_F);
NUM_2G(MUN_G);
NUM_2H(MUN_H);
NUM_2J(MUN_J);
NUM_2K(MUN_K);
NUM_2L(MUN_L);
}
static void Seg_Digit_3_Disp (uint8_t Digit)
static void Seg_Digit_3_Disp(uint8_t Digit)
{
uint8_t MUN_A;
uint8_t MUN_B;
......@@ -477,37 +477,37 @@ static void Seg_Digit_3_Disp (uint8_t Digit)
uint8_t MUN_K;
uint8_t MUN_L;
MUN_A = ( ((1 << 0) & Seg_Digit_Nomal[Digit]) >> 0) ? 7 : 0;
MUN_B = ( ((1 << 1) & Seg_Digit_Nomal[Digit]) >> 1) ? 7 : 0;
MUN_C = ( ((1 << 2) & Seg_Digit_Nomal[Digit]) >> 2) ? 7 : 0;
MUN_D = ( ((1 << 3) & Seg_Digit_Nomal[Digit]) >> 3) ? 7 : 0;
MUN_E = ( ((1 << 4) & Seg_Digit_Nomal[Digit]) >> 4) ? 7 : 0;
MUN_F = ( ((1 << 5) & Seg_Digit_Nomal[Digit]) >> 5) ? 7 : 0;
MUN_G = ( ((1 << 6) & Seg_Digit_Nomal[Digit]) >> 6) ? 7 : 0;
MUN_H = ( ((1 << 7) & Seg_Digit_Nomal[Digit]) >> 7) ? 7 : 0;
MUN_J = ( ((1 << 8) & Seg_Digit_Nomal[Digit]) >> 8) ? 7 : 0;
MUN_K = ( ((1 << 9) & Seg_Digit_Nomal[Digit]) >> 9) ? 7 : 0;
MUN_L = ( ((1 << 10) & Seg_Digit_Nomal[Digit]) >> 10) ? 7 : 0;
NUM_3A (MUN_A);
NUM_3B (MUN_B);
NUM_3C (MUN_C);
NUM_3D (MUN_D);
NUM_3E (MUN_E);
NUM_3F (MUN_F);
NUM_3G (MUN_G);
NUM_3H (MUN_H);
NUM_3J (MUN_J);
NUM_3K (MUN_K);
NUM_3L (MUN_L);
MUN_A = (((1 << 0) & Seg_Digit_Nomal[Digit]) >> 0) ? 7 : 0;
MUN_B = (((1 << 1) & Seg_Digit_Nomal[Digit]) >> 1) ? 7 : 0;
MUN_C = (((1 << 2) & Seg_Digit_Nomal[Digit]) >> 2) ? 7 : 0;
MUN_D = (((1 << 3) & Seg_Digit_Nomal[Digit]) >> 3) ? 7 : 0;
MUN_E = (((1 << 4) & Seg_Digit_Nomal[Digit]) >> 4) ? 7 : 0;
MUN_F = (((1 << 5) & Seg_Digit_Nomal[Digit]) >> 5) ? 7 : 0;
MUN_G = (((1 << 6) & Seg_Digit_Nomal[Digit]) >> 6) ? 7 : 0;
MUN_H = (((1 << 7) & Seg_Digit_Nomal[Digit]) >> 7) ? 7 : 0;
MUN_J = (((1 << 8) & Seg_Digit_Nomal[Digit]) >> 8) ? 7 : 0;
MUN_K = (((1 << 9) & Seg_Digit_Nomal[Digit]) >> 9) ? 7 : 0;
MUN_L = (((1 << 10) & Seg_Digit_Nomal[Digit]) >> 10) ? 7 : 0;
NUM_3A(MUN_A);
NUM_3B(MUN_B);
NUM_3C(MUN_C);
NUM_3D(MUN_D);
NUM_3E(MUN_E);
NUM_3F(MUN_F);
NUM_3G(MUN_G);
NUM_3H(MUN_H);
NUM_3J(MUN_J);
NUM_3K(MUN_K);
NUM_3L(MUN_L);
}
static void SEG_VehicleSpeed_Num(uint16_t Value, uint8_t Valid)
{
uint32_t VSPEED_FLAG ;
uint32_t VSPEED_FLAG;
uint8_t Dig[3u];
uint8_t Seg_Trip_Display_Reg = 0u ;
uint8_t Seg_Trip_Display_Reg = 0u;
if (Valid == GUI_DISP_MODE_BLANK)
{
......@@ -517,23 +517,23 @@ static void SEG_VehicleSpeed_Num(uint16_t Value, uint8_t Valid)
}
else
{
VSPEED_FLAG = Value ;
VSPEED_FLAG = Value;
VSPEED_FLAG = VSPEED_FLAG / 10u;
if (VSPEED_FLAG > 225u)
VSPEED_FLAG = 225u;
Seg_General_Digit_Display( (uint32_t)VSPEED_FLAG , 3u, 2u , Dig , &Seg_Trip_Display_Reg ) ;
switch ( Seg_Trip_Display_Reg )
Seg_General_Digit_Display((uint32_t)VSPEED_FLAG, 3u, 2u, Dig, &Seg_Trip_Display_Reg);
switch (Seg_Trip_Display_Reg)
{
case 0x02://二位数
case 0x02: //二位数
Dig[2u] = 10u;
break;
case 0x03://一位数
case 0x03: //一位数
Dig[2u] = 10u;
Dig[1u] = 10u;
break;
default :
default:
break;
}
......@@ -545,424 +545,425 @@ static void SEG_VehicleSpeed_Num(uint16_t Value, uint8_t Valid)
}
else
{
Seg_Digit_1_Disp(11u);//--
Seg_Digit_2_Disp(11u);//--
Seg_Digit_3_Disp(11u);//--
Seg_Digit_1_Disp(11u); //--
Seg_Digit_2_Disp(11u); //--
Seg_Digit_3_Disp(11u); //--
}
}
}
//主气压
static void SEG_PRI_Display(uint8_t Value, uint8_t Valid,uint8_t seg_status)
static void SEG_PRI_Display(uint8_t Value, uint8_t Valid, uint8_t seg_status)
{
uint8_t i ;
static OldValue = 0xff ;
static uint8_t mSEG[ PRI_SEG_NUM_MAX ] = {0} ;
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_95, seg_status) ;//A63
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_96, seg_status) ;//A64
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_114, seg_status);//A82
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_115, seg_status);//A83
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_116, seg_status);//A84
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_117, seg_status);//A85
uint8_t i;
static OldValue = 0xff;
static uint8_t mSEG[PRI_SEG_NUM_MAX] = {0};
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_95, seg_status); // A63
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_96, seg_status); // A64
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_114, seg_status); // A82
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_115, seg_status); // A83
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_116, seg_status); // A84
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_117, seg_status); // A85
if (Valid == GUI_DISP_MODE_BLANK)
{
for(i = 0 ;i < PRI_SEG_NUM_MAX ;i ++ )
for (i = 0; i < PRI_SEG_NUM_MAX; i++)
{
mSEG[i] = 0 ;
mSEG[i] = 0;
}
OldValue = 0xff ;
OldValue = 0xff;
}
else if(Valid == GUI_DISP_MODE_INVALID)
else if (Valid == GUI_DISP_MODE_INVALID)
{
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_114, 0);//A82
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_115, 0);//A83
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_116, 0);//A84
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_117, 0);//A85
for(i = 0 ;i < PRI_SEG_NUM_MAX ;i ++ )
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_114, 0); // A82
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_115, 0); // A83
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_116, 0); // A84
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_117, 0); // A85
for (i = 0; i < PRI_SEG_NUM_MAX; i++)
{
mSEG[i] = 0 ;
mSEG[i] = 0;
}
OldValue = 0xff ;
OldValue = 0xff;
}
else
{
{
if (Valid == GUI_DISP_MODE_NORMAL)
{//eg: 5 -> 100000-> 11111
//mSEG[0] = ((((1 << Value) - 1) & ( 1 << 0)) >> 0) ? seg_status : 0;
if(OldValue != Value)
{
// eg: 5 -> 100000-> 11111
// mSEG[0] = ((((1 << Value) - 1) & ( 1 << 0)) >> 0) ? seg_status : 0;
if (OldValue != Value)
{
OldValue = Value ;
OldValue = Value;
for(i = 0 ;i < PRI_SEG_NUM_MAX ;i ++ )
for (i = 0; i < PRI_SEG_NUM_MAX; i++)
{
mSEG[i] = ((((1 << Value) - 1) & ( 1 << i)) >> i) ;
if(mSEG[i])
mSEG[i] = ((((1 << Value) - 1) & (1 << i)) >> i);
if (mSEG[i])
{
mSEG[i] = seg_status ;
mSEG[i] = seg_status;
}
else
{
mSEG[i] = 0 ;
mSEG[i] = 0;
}
}
}
}
}
}
}
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_97, mSEG[0]) ;//A65
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_98, mSEG[1]) ;//A66
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_99, mSEG[2]) ;//A67
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_100, mSEG[3]) ;//A68
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_101, mSEG[4]) ;//A69
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_102, mSEG[5]) ;//A70
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_103, mSEG[6]) ;//A71
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_104, mSEG[7]) ;//A72
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_105, mSEG[8]) ;//A73
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_106, mSEG[9]) ;//A74
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_107, mSEG[10]) ;//A75
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_108, mSEG[11]) ;//A76
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_109, mSEG[12]) ;//A77
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_110, mSEG[13]) ;//A78
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_111, mSEG[14]) ;//A79
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_112, mSEG[15]) ;//A80
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_113, mSEG[16]) ;//A81
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_97, mSEG[0]); // A65
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_98, mSEG[1]); // A66
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_99, mSEG[2]); // A67
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_100, mSEG[3]); // A68
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_101, mSEG[4]); // A69
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_102, mSEG[5]); // A70
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_103, mSEG[6]); // A71
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_104, mSEG[7]); // A72
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_105, mSEG[8]); // A73
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_106, mSEG[9]); // A74
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_107, mSEG[10]); // A75
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_108, mSEG[11]); // A76
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_109, mSEG[12]); // A77
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_110, mSEG[13]); // A78
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_111, mSEG[14]); // A79
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_112, mSEG[15]); // A80
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_113, mSEG[16]); // A81
}
//副气压
static void SEG_SEC_Display(uint8_t Value, uint8_t Valid,uint8_t seg_status)
static void SEG_SEC_Display(uint8_t Value, uint8_t Valid, uint8_t seg_status)
{
uint8_t i ;
static OldValue = 0xff ;
static uint8_t mSEG[ SEC_SEG_NUM_MAX ] = {0} ;
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_68, seg_status);//B5
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_69, seg_status);//B6
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_70, seg_status);//B7
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_71, seg_status);//B8
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_72, seg_status);//B9
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_90, seg_status);//B27
uint8_t i;
static OldValue = 0xff;
static uint8_t mSEG[SEC_SEG_NUM_MAX] = {0};
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_68, seg_status); // B5
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_69, seg_status); // B6
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_70, seg_status); // B7
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_71, seg_status); // B8
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_72, seg_status); // B9
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_90, seg_status); // B27
if (Valid == GUI_DISP_MODE_BLANK)
{
for(i = 0 ;i < SEC_SEG_NUM_MAX ;i ++ )
for (i = 0; i < SEC_SEG_NUM_MAX; i++)
{
mSEG[i] = 0 ;
mSEG[i] = 0;
}
OldValue = 0xff ;
OldValue = 0xff;
}
else if (Valid == GUI_DISP_MODE_INVALID)
{
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_70, 0);//B7
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_71, 0);//B8
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_72, 0);//B9
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_90, 0);//B27
for(i = 0 ;i < SEC_SEG_NUM_MAX ;i ++ )
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_70, 0); // B7
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_71, 0); // B8
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_72, 0); // B9
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_90, 0); // B27
for (i = 0; i < SEC_SEG_NUM_MAX; i++)
{
mSEG[i] = 0 ;
mSEG[i] = 0;
}
OldValue = 0xff ;
OldValue = 0xff;
}
else
{
{
if (Valid == GUI_DISP_MODE_NORMAL)
{//eg: 5 -> 100000-> 11111
if(OldValue != Value)
{
// eg: 5 -> 100000-> 11111
if (OldValue != Value)
{
for(i = 0 ;i < SEC_SEG_NUM_MAX ;i ++ )
for (i = 0; i < SEC_SEG_NUM_MAX; i++)
{
mSEG[i] = ((((1 << Value) - 1) & ( 1 << i)) >> i) ;
if(mSEG[i])
mSEG[i] = ((((1 << Value) - 1) & (1 << i)) >> i);
if (mSEG[i])
{
mSEG[i] = seg_status ;
mSEG[i] = seg_status;
}
else
{
mSEG[i] = 0 ;
mSEG[i] = 0;
}
}
}
}
}
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_73, mSEG[0]) ;//B10
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_74, mSEG[1]) ;//B11
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_75, mSEG[2]) ;//B12
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_76, mSEG[3]) ;//B13
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_77, mSEG[4]) ;//B14
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_78, mSEG[5]) ;//B15
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_79, mSEG[6]) ;//B16
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_80, mSEG[7]) ;//B17
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_81, mSEG[8]) ;//B18
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_82, mSEG[9]) ;//B19
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_83, mSEG[10]) ;//B20
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_84, mSEG[11]) ;//B21
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_85, mSEG[12]) ;//B22
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_86, mSEG[13]) ;//B23
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_87, mSEG[14]) ;//B24
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_88, mSEG[15]) ;//B25
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_89, mSEG[16]) ;//B26
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_73, mSEG[0]); // B10
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_74, mSEG[1]); // B11
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_75, mSEG[2]); // B12
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_76, mSEG[3]); // B13
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_77, mSEG[4]); // B14
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_78, mSEG[5]); // B15
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_79, mSEG[6]); // B16
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_80, mSEG[7]); // B17
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_81, mSEG[8]); // B18
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_82, mSEG[9]); // B19
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_83, mSEG[10]); // B20
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_84, mSEG[11]); // B21
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_85, mSEG[12]); // B22
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_86, mSEG[13]); // B23
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_87, mSEG[14]); // B24
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_88, mSEG[15]); // B25
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_89, mSEG[16]); // B26
}
//水温
static void SEG_Coolant_Display(uint8_t Value, uint8_t Valid,uint8_t seg_status)
static void SEG_Coolant_Display(uint8_t Value, uint8_t Valid, uint8_t seg_status)
{
uint8_t i ;
static uint8_t OldValue = 0 ;
static uint8_t mSEG[ COOLANT_SEG_NUM_MAX ] = {0} ;
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_79, seg_status);//A47
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_92, seg_status);//A60
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_93, seg_status);//A61
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_94, seg_status);//A62
uint8_t i;
static uint8_t OldValue = 0;
static uint8_t mSEG[COOLANT_SEG_NUM_MAX] = {0};
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_79, seg_status); // A47
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_92, seg_status); // A60
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_93, seg_status); // A61
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_94, seg_status); // A62
if (Valid == GUI_DISP_MODE_BLANK)
{
for(i = 0 ;i < COOLANT_SEG_NUM_MAX ;i ++ )
for (i = 0; i < COOLANT_SEG_NUM_MAX; i++)
{
mSEG[i] = 0 ;
mSEG[i] = 0;
}
OldValue = 0 ;
OldValue = 0;
}
else if(Valid == GUI_DISP_MODE_INVALID)
else if (Valid == GUI_DISP_MODE_INVALID)
{
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_92, 0u);//A60
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_93, 0u);//A61
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_94, 0u);//A62
for(i = 0 ;i < COOLANT_SEG_NUM_MAX ;i ++ )
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_92, 0u); // A60
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_93, 0u); // A61
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_94, 0u); // A62
for (i = 0; i < COOLANT_SEG_NUM_MAX; i++)
{
mSEG[i] = 0 ;
mSEG[i] = 0;
}
OldValue = 0 ;
OldValue = 0;
}
else
{
{
if (Valid == GUI_DISP_MODE_NORMAL)
{//eg: 5 -> 100000-> 11111
if(OldValue != Value)
{
// eg: 5 -> 100000-> 11111
if (OldValue != Value)
{
OldValue = Value ;
for(i = 0 ;i < COOLANT_SEG_NUM_MAX ;i ++ )
OldValue = Value;
for (i = 0; i < COOLANT_SEG_NUM_MAX; i++)
{
mSEG[i] = ((((1 << Value) - 1) & ( 1 << i)) >> i) ;
if(mSEG[i])
mSEG[i] = ((((1 << Value) - 1) & (1 << i)) >> i);
if (mSEG[i])
{
mSEG[i] = seg_status ;
mSEG[i] = seg_status;
}
else
{
mSEG[i] = 0 ;
mSEG[i] = 0;
}
}
}
}
}
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_80, mSEG[0]) ;//A48
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_81, mSEG[1]) ;//A49
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_82, mSEG[2]) ;//A50
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_83, mSEG[3]) ;//A51
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_84, mSEG[4]) ;//A52
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_85, mSEG[5]) ;//A53
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_86, mSEG[6]) ;//A54
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_87, mSEG[7]) ;//A55
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_88, mSEG[8]) ;//A56
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_89, mSEG[9]) ;//A57
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_90, mSEG[10]) ;//A58
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_91, mSEG[11]) ;//A59
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_80, mSEG[0]); // A48
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_81, mSEG[1]); // A49
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_82, mSEG[2]); // A50
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_83, mSEG[3]); // A51
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_84, mSEG[4]); // A52
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_85, mSEG[5]); // A53
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_86, mSEG[6]); // A54
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_87, mSEG[7]); // A55
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_88, mSEG[8]); // A56
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_89, mSEG[9]); // A57
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_90, mSEG[10]); // A58
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_91, mSEG[11]); // A59
}
//燃油
static void SEG_Fuel_Display(uint8_t Value, uint8_t Valid,uint8_t seg_status)
static void SEG_Fuel_Display(uint8_t Value, uint8_t Valid, uint8_t seg_status)
{
uint8_t i ;
uint8_t mSEG[ FUEL_SEG_NUM_MAX ] = {0} ;
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_91, seg_status);//B28
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_92, seg_status);//B29
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_93, seg_status);//B30
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_106, seg_status);//B43
uint8_t i;
uint8_t mSEG[FUEL_SEG_NUM_MAX] = {0};
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_91, seg_status); // B28
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_92, seg_status); // B29
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_93, seg_status); // B30
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_106, seg_status); // B43
if (Valid == GUI_DISP_MODE_BLANK)
{
for(i = 0 ;i < FUEL_SEG_NUM_MAX ;i ++ )
for (i = 0; i < FUEL_SEG_NUM_MAX; i++)
{
mSEG[i] = 0 ;
mSEG[i] = 0;
}
}
else
{
{
if (Valid == GUI_DISP_MODE_NORMAL)
{//eg: 5 -> 100000-> 11111
for(i = 0 ;i < FUEL_SEG_NUM_MAX ;i ++ )
{
// eg: 5 -> 100000-> 11111
for (i = 0; i < FUEL_SEG_NUM_MAX; i++)
{
mSEG[i] = ((((1 << Value) - 1) & ( 1 << i)) >> i) ;
if(mSEG[i])
mSEG[i] = ((((1 << Value) - 1) & (1 << i)) >> i);
if (mSEG[i])
{
mSEG[i] = seg_status ;
mSEG[i] = seg_status;
}
else
{
mSEG[i] = 0 ;
mSEG[i] = 0;
}
}
}
}
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_94 , mSEG[0]) ;//B31
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_95 , mSEG[1]) ;//B32
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_96 , mSEG[2]) ;//B33
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_97 , mSEG[3]) ;//B34
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_98 , mSEG[4]) ;//B35
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_99 , mSEG[5]) ;//B36
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_100, mSEG[6]) ;//B37
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_101, mSEG[7]) ;//B38
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_102, mSEG[8]) ;//B39
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_103, mSEG[9]) ;//B40
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_104, mSEG[10]) ;//B41
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_105, mSEG[11]) ;//B42
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_94, mSEG[0]); // B31
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_95, mSEG[1]); // B32
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_96, mSEG[2]); // B33
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_97, mSEG[3]); // B34
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_98, mSEG[4]); // B35
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_99, mSEG[5]); // B36
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_100, mSEG[6]); // B37
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_101, mSEG[7]); // B38
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_102, mSEG[8]); // B39
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_103, mSEG[9]); // B40
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_104, mSEG[10]); // B41
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_105, mSEG[11]); // B42
}
//转速
static void SEG_Tacho_Display(uint8_t Value, uint8_t Valid,uint8_t seg_status)
static void SEG_Tacho_Display(uint8_t Value, uint8_t Valid, uint8_t seg_status)
{
uint8_t i ;
uint8_t mSEG[ TACHO_SEG_NUM_MAX ] = {0} ;
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_38, seg_status);//A8
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_59, seg_status);//A27
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_65, seg_status);//A33
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_71, seg_status);//A39
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_40, seg_status);//A10
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_46, seg_status);//A16
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_51, seg_status);//A21
uint8_t i;
uint8_t mSEG[TACHO_SEG_NUM_MAX] = {0};
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_38, seg_status); // A8
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_59, seg_status); // A27
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_65, seg_status); // A33
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_71, seg_status); // A39
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_40, seg_status); // A10
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_46, seg_status); // A16
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_51, seg_status); // A21
if (Valid == GUI_DISP_MODE_BLANK)
{
for(i = 0 ;i < TACHO_SEG_NUM_MAX ;i ++ )
for (i = 0; i < TACHO_SEG_NUM_MAX; i++)
{
mSEG[i] = 0 ;
mSEG[i] = 0;
}
}
else
{
{
if (Valid == GUI_DISP_MODE_NORMAL)
{//eg: 5 -> 100000-> 11111
for(i = 0 ;i < TACHO_SEG_NUM_MAX ;i ++ )
{
// eg: 5 -> 100000-> 11111
for (i = 0; i < TACHO_SEG_NUM_MAX; i++)
{
mSEG[i] = ((((1 << Value) - 1) & ( 1 << i)) >> i) ;
if(mSEG[i])
mSEG[i] = ((((1 << Value) - 1) & (1 << i)) >> i);
if (mSEG[i])
{
mSEG[i] = seg_status ;
mSEG[i] = seg_status;
}
else
{
mSEG[i] = 1 ;
mSEG[i] = 1;
}
}
}
}
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_58, mSEG[0]);//A26
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_60, mSEG[1]);//A28
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_61, mSEG[2]);//A29
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_62, mSEG[3]);//A30
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_63, mSEG[4]);//A31
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_64, mSEG[5]);//A32
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_66, mSEG[6]);//A34
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_67, mSEG[7]);//A35
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_68, mSEG[8]);//A36
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_69, mSEG[9]);//A37
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_70, mSEG[10]);//A38
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_72, mSEG[11]);//A40
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_73, mSEG[12]);//A41
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_74, mSEG[13]);//A42
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_75, mSEG[14]);//A43
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_39, mSEG[15]);//A9
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_41, mSEG[16]);//A11
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_42, mSEG[17]);//A12
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_43, mSEG[18]);//A13
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_44, mSEG[19]);//A14
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_45, mSEG[20]);//A15
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_47, mSEG[21]);//A17
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_48, mSEG[22]);//A18
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_49, mSEG[23]);//A19
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_53, mSEG[24]);//A23
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_52, mSEG[25]);//A22
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_50, mSEG[26]);//A20
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_58, mSEG[0]); // A26
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_60, mSEG[1]); // A28
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_61, mSEG[2]); // A29
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_62, mSEG[3]); // A30
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_63, mSEG[4]); // A31
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_64, mSEG[5]); // A32
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_66, mSEG[6]); // A34
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_67, mSEG[7]); // A35
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_68, mSEG[8]); // A36
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_69, mSEG[9]); // A37
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_70, mSEG[10]); // A38
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_72, mSEG[11]); // A40
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_73, mSEG[12]); // A41
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_74, mSEG[13]); // A42
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_75, mSEG[14]); // A43
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_39, mSEG[15]); // A9
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_41, mSEG[16]); // A11
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_42, mSEG[17]); // A12
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_43, mSEG[18]); // A13
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_44, mSEG[19]); // A14
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_45, mSEG[20]); // A15
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_47, mSEG[21]); // A17
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_48, mSEG[22]); // A18
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_49, mSEG[23]); // A19
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_53, mSEG[24]); // A23
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_52, mSEG[25]); // A22
SEG_BUFF_Set(BU98_CHIP1, SEG_REDEFINE_50, mSEG[26]); // A20
}
//车速
static void SEG_VehicleSpeed_Display(uint8_t Value, uint8_t Valid,uint8_t seg_status)
static void SEG_VehicleSpeed_Display(uint8_t Value, uint8_t Valid, uint8_t seg_status)
{
uint8_t i ;
uint8_t mSEG[ VEH_SEG_NUM_MAX ] = {0} ;
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_154, seg_status);//C42
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_133, seg_status);//C23
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_128, seg_status);//C18
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_123, seg_status);//C13
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_118, seg_status);//C8
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_113, seg_status);//C3
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_151, seg_status);//C39
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_146, seg_status);//C34
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_141, seg_status);//C29
if(Value > VEH_SEG_NUM_MAX)
uint8_t i;
uint8_t mSEG[VEH_SEG_NUM_MAX] = {0};
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_154, seg_status); // C42
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_133, seg_status); // C23
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_128, seg_status); // C18
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_123, seg_status); // C13
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_118, seg_status); // C8
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_113, seg_status); // C3
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_151, seg_status); // C39
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_146, seg_status); // C34
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_141, seg_status); // C29
if (Value > VEH_SEG_NUM_MAX)
{
Value = VEH_SEG_NUM_MAX ;
Value = VEH_SEG_NUM_MAX;
}
if (Valid == GUI_DISP_MODE_BLANK)
{
for(i = 0 ;i < VEH_SEG_NUM_MAX ;i ++ )
for (i = 0; i < VEH_SEG_NUM_MAX; i++)
{
mSEG[i] = 0 ;
mSEG[i] = 0;
}
}
else
{
{
if (Valid == GUI_DISP_MODE_NORMAL)
{//eg: 5 -> 100000-> 11111
for(i = 0 ;i < VEH_SEG_NUM_MAX ;i ++ )
{
// eg: 5 -> 100000-> 11111
for (i = 0; i < VEH_SEG_NUM_MAX; i++)
{
mSEG[i] = ((((1 << Value) - 1) & ( 1 << i)) >> i) ;
if(mSEG[i])
mSEG[i] = ((((1 << Value) - 1) & (1 << i)) >> i);
if (mSEG[i])
{
mSEG[i] = seg_status ;
mSEG[i] = seg_status;
}
else
{
mSEG[i] = 1 ;
mSEG[i] = 1;
}
}
}
}
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_134, mSEG[0]);//C24
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_132, mSEG[1]);//C22
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_131, mSEG[2]);//C21
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_130, mSEG[3]);//C20
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_129, mSEG[4]);//C19
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_127, mSEG[5]);//C17
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_126, mSEG[6]);//C16
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_125, mSEG[7]);//C15
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_124, mSEG[8]);//C14
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_122, mSEG[9]);//C12
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_121, mSEG[10]);//C11
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_120, mSEG[11]);//C10
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_119, mSEG[12]);//C9
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_117, mSEG[13]);//C7
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_116, mSEG[14]);//C6
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_115, mSEG[15]);//C5
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_114, mSEG[16]);//C4
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_112, mSEG[17]);//C2
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_111, mSEG[18]);//C1
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_153, mSEG[19]);//C41
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_152, mSEG[20]);//C40
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_150, mSEG[21]);//C38
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_149, mSEG[22]);//C37
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_148, mSEG[23]);//C36
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_147, mSEG[24]);//C35
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_145, mSEG[25]);//C33
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_144, mSEG[26]);//C32
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_143, mSEG[27]);//C31
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_142, mSEG[28]);//C30
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_140, mSEG[29]);//C28
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_134, mSEG[0]); // C24
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_132, mSEG[1]); // C22
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_131, mSEG[2]); // C21
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_130, mSEG[3]); // C20
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_129, mSEG[4]); // C19
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_127, mSEG[5]); // C17
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_126, mSEG[6]); // C16
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_125, mSEG[7]); // C15
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_124, mSEG[8]); // C14
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_122, mSEG[9]); // C12
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_121, mSEG[10]); // C11
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_120, mSEG[11]); // C10
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_119, mSEG[12]); // C9
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_117, mSEG[13]); // C7
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_116, mSEG[14]); // C6
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_115, mSEG[15]); // C5
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_114, mSEG[16]); // C4
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_112, mSEG[17]); // C2
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_111, mSEG[18]); // C1
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_153, mSEG[19]); // C41
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_152, mSEG[20]); // C40
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_150, mSEG[21]); // C38
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_149, mSEG[22]); // C37
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_148, mSEG[23]); // C36
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_147, mSEG[24]); // C35
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_145, mSEG[25]); // C33
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_144, mSEG[26]); // C32
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_143, mSEG[27]); // C31
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_142, mSEG[28]); // C30
SEG_BUFF_Set(BU98_CHIP0, SEG_REDEFINE_140, mSEG[29]); // C28
}
/******************************************************************************
函数名:Seg_General_Digit_Display
......@@ -974,7 +975,7 @@ static void SEG_VehicleSpeed_Display(uint8_t Value, uint8_t Valid,uint8_t seg_st
Reg : 寄存器变量
返回值:无
******************************************************************************/
static void Seg_General_Digit_Display(uint32_t Digit, uint8_t Len, uint8_t Blank , uint8_t *DigitBuf , uint8_t *Reg )
static void Seg_General_Digit_Display(uint32_t Digit, uint8_t Len, uint8_t Blank, uint8_t *DigitBuf, uint8_t *Reg)
{
uint8_t i;
uint8_t ActLen;
......@@ -997,7 +998,7 @@ static void Seg_General_Digit_Display(uint32_t Digit, uint8_t Len, uint8_t Blank
}
//对未计算到的数字位作0填充
for (i = ActLen; i < Len; i++ )
for (i = ActLen; i < Len; i++)
DigitBuf[i] = 0;
//数字首部按消隐位数做零消隐
......@@ -1007,102 +1008,96 @@ static void Seg_General_Digit_Display(uint32_t Digit, uint8_t Len, uint8_t Blank
DigitBuf[i] = 0xFF;
i--;
(*Reg) |= (1 << i) ;
(*Reg) |= (1 << i);
}
}
static uint8_t wbyTestSeg = 0;
static uint16_t wbyTestNum ;
static uint8_t WBY_SET = 0 ;
static uint16_t wbyTestNum;
static uint8_t WBY_SET = 0;
void Seg_Display_Service(void)
{
uint32_t Ign_Time ;
uint32_t Ign_Time;
Ign_Time = Common_GetIgnOnTime();
if (Common_Get_IG_Sts() == COMMON_POWER_ON)
{
if(WBY_SET == 1)
{
if (WBY_SET == 1)
{
Seg_Display_ON();
}
}
else
{
SEG_A25_Disp(7u) ;//左侧弧线
SEG_C25_Disp(7u) ;//右侧弧线
if(Ign_Time < 3100)
//if(0)
SEG_A25_Disp(7u); //左侧弧线
SEG_C25_Disp(7u); //右侧弧线
if (Ign_Time < 3100)
{
SEG_PRI_Display(GetGaugesCurrentPos(PRIGasGauges),GUI_DISP_MODE_NORMAL,7u) ;//PRI气压格
SEG_SEC_Display(GetGaugesCurrentPos(SECGasGauges),GUI_DISP_MODE_NORMAL,7u) ;//SEC气压格
SEG_Coolant_Display(GetGaugesCurrentPos(TempGauges),GUI_DISP_MODE_NORMAL,7u) ;//水温格
SEG_Fuel_Display(GetGaugesCurrentPos(TempGauges), GUI_DISP_MODE_NORMAL,7u);//燃油格
SEG_Tacho_Display(GetGaugesCurrentPos(RevGauges),GUI_DISP_MODE_NORMAL,7u);//转速格
SEG_VehicleSpeed_Display(GetGaugesCurrentPos(VehGauges) ,GUI_DISP_MODE_NORMAL,7u);//车速格
SEG_PRI_Display(GetGaugesCurrentPos(PRIGasGauges), GUI_DISP_MODE_NORMAL, 7u); // PRI气压格
SEG_SEC_Display(GetGaugesCurrentPos(SECGasGauges), GUI_DISP_MODE_NORMAL, 7u); // SEC气压格
SEG_Coolant_Display(GetGaugesCurrentPos(TempGauges), GUI_DISP_MODE_NORMAL, 7u); //水温格
SEG_Fuel_Display(GetGaugesCurrentPos(TempGauges), GUI_DISP_MODE_NORMAL, 7u); //燃油格
SEG_Tacho_Display(GetGaugesCurrentPos(RevGauges), GUI_DISP_MODE_NORMAL, 7u); //转速格
SEG_VehicleSpeed_Display(GetGaugesCurrentPos(VehGauges), GUI_DISP_MODE_NORMAL, 7u); //车速格
Seg_Digit_1_Disp(12);
Seg_Digit_2_Disp(12);
Seg_Digit_3_Disp(12);
return ;
}
return;
}
if(AirPressure_Get_Valid(0))
if (AirPressure_Get_Valid(0))
{
SEG_PRI_Display(AirPressure_Get_CurSeg(0),GUI_DISP_MODE_NORMAL,7u) ;//PRI气压格
SEG_PRI_Display(AirPressure_Get_CurSeg(0), GUI_DISP_MODE_NORMAL, 7u); // PRI气压格
}
else
{
SEG_PRI_Display(AirPressure_Get_CurSeg(0),GUI_DISP_MODE_INVALID,7u) ;//PRI气压格
SEG_PRI_Display(AirPressure_Get_CurSeg(0), GUI_DISP_MODE_INVALID, 7u); // PRI气压格
}
if(AirPressure_Get_Valid(1))
if (AirPressure_Get_Valid(1))
{
SEG_SEC_Display(AirPressure_Get_CurSeg(1),GUI_DISP_MODE_NORMAL,7u) ;//SEC气压格
SEG_SEC_Display(AirPressure_Get_CurSeg(1), GUI_DISP_MODE_NORMAL, 7u); // SEC气压格
}
else
{
SEG_SEC_Display(AirPressure_Get_CurSeg(1),GUI_DISP_MODE_INVALID,7u) ;//SEC气压格
SEG_SEC_Display(AirPressure_Get_CurSeg(1), GUI_DISP_MODE_INVALID, 7u); // SEC气压格
}
if(Coolant_Get_Valid())
if (Coolant_Get_Valid())
{
SEG_Coolant_Display(Coolant_Get_CurSeg(),GUI_DISP_MODE_NORMAL,7u) ;//水温格
SEG_Coolant_Display(Coolant_Get_CurSeg(), GUI_DISP_MODE_NORMAL, 7u); //水温格
}
else
{
SEG_Coolant_Display(Coolant_Get_CurSeg(),GUI_DISP_MODE_INVALID,7u) ;//水温格
SEG_Coolant_Display(Coolant_Get_CurSeg(), GUI_DISP_MODE_INVALID, 7u); //水温格
}
SEG_Fuel_Display(Fuel_Get_CurSeg(), GUI_DISP_MODE_NORMAL,7u);//燃油格
SEG_Tacho_Display(Tacho_Get_CurSeg(),GUI_DISP_MODE_NORMAL,7u);//转速格
SEG_VehicleSpeed_Display(Speed_Get_CurSeg(),GUI_DISP_MODE_NORMAL,7u);//车速格
wbyTestNum = Common_Get_Disp_V_Speed() ;
//Speed_Get_Display_Value()
SEG_VehicleSpeed_Num(wbyTestNum,GUI_DISP_MODE_NORMAL);//车速值
//SEG_PRI_Display(wbyTestSeg,GUI_DISP_MODE_NORMAL,7u) ;//PRI气压格
//SEG_SEC_Display(wbyTestSeg,GUI_DISP_MODE_NORMAL,7u) ;//SEC气压格
//SEG_Coolant_Display(wbyTestSeg,GUI_DISP_MODE_NORMAL,7u) ;//水温格
//SEG_Fuel_Display(wbyTestSeg, GUI_DISP_MODE_NORMAL,7u);//燃油格
//SEG_Tacho_Display(wbyTestSeg,GUI_DISP_MODE_NORMAL,7u);//转速格
//SEG_VehicleSpeed_Display(wbyTestSeg,GUI_DISP_MODE_NORMAL,7u);//车速格
//SEG_VehicleSpeed_Num(wbyTestNum,GUI_DISP_MODE_NORMAL);//车速值
}
SEG_Fuel_Display(Fuel_Get_CurSeg(), GUI_DISP_MODE_NORMAL, 7u); //燃油格
SEG_Tacho_Display(Tacho_Get_CurSeg(), GUI_DISP_MODE_NORMAL, 7u); //转速格
SEG_VehicleSpeed_Display(Speed_Get_CurSeg(), GUI_DISP_MODE_NORMAL, 7u); //车速格
wbyTestNum = Common_Get_Disp_V_Speed();
// Speed_Get_Display_Value()
SEG_VehicleSpeed_Num(wbyTestNum, GUI_DISP_MODE_NORMAL); //车速值
// SEG_PRI_Display(wbyTestSeg,GUI_DISP_MODE_NORMAL,7u) ;//PRI气压格
// SEG_SEC_Display(wbyTestSeg,GUI_DISP_MODE_NORMAL,7u) ;//SEC气压格
// SEG_Coolant_Display(wbyTestSeg,GUI_DISP_MODE_NORMAL,7u) ;//水温格
// SEG_Fuel_Display(wbyTestSeg, GUI_DISP_MODE_NORMAL,7u);//燃油格
// SEG_Tacho_Display(wbyTestSeg,GUI_DISP_MODE_NORMAL,7u);//转速格
// SEG_VehicleSpeed_Display(wbyTestSeg,GUI_DISP_MODE_NORMAL,7u);//车速格
// SEG_VehicleSpeed_Num(wbyTestNum,GUI_DISP_MODE_NORMAL);//车速值
}
}
else
{
SEG_A25_Disp(0u) ;//左侧弧线
SEG_C25_Disp(0u) ;//右侧弧线
SEG_PRI_Display(AirPressure_Get_CurSeg(0),GUI_DISP_MODE_BLANK,0u) ;//PRI气压格
SEG_SEC_Display(AirPressure_Get_CurSeg(1),GUI_DISP_MODE_BLANK,0u) ;//SEC气压格
SEG_Coolant_Display(Coolant_Get_CurSeg(),GUI_DISP_MODE_BLANK,0u) ;//水温格
SEG_Fuel_Display(Fuel_Get_CurSeg(), GUI_DISP_MODE_BLANK,0u);//燃油格
SEG_Tacho_Display(Tacho_Get_CurSeg(),GUI_DISP_MODE_BLANK,0u);//转速格
SEG_VehicleSpeed_Display(Speed_Get_CurSeg(),GUI_DISP_MODE_BLANK,0u);//车速格
SEG_VehicleSpeed_Num(0u,GUI_DISP_MODE_BLANK);//车速值
SEG_A25_Disp(0u); //左侧弧线
SEG_C25_Disp(0u); //右侧弧线
SEG_PRI_Display(AirPressure_Get_CurSeg(0), GUI_DISP_MODE_BLANK, 0u); // PRI气压格
SEG_SEC_Display(AirPressure_Get_CurSeg(1), GUI_DISP_MODE_BLANK, 0u); // SEC气压格
SEG_Coolant_Display(Coolant_Get_CurSeg(), GUI_DISP_MODE_BLANK, 0u); //水温格
SEG_Fuel_Display(Fuel_Get_CurSeg(), GUI_DISP_MODE_BLANK, 0u); //燃油格
SEG_Tacho_Display(Tacho_Get_CurSeg(), GUI_DISP_MODE_BLANK, 0u); //转速格
SEG_VehicleSpeed_Display(Speed_Get_CurSeg(), GUI_DISP_MODE_BLANK, 0u); //车速格
SEG_VehicleSpeed_Num(0u, GUI_DISP_MODE_BLANK); //车速值
}
}
......@@ -1115,7 +1110,7 @@ void Seg_Display_ON(void)
{
for (seg_num = SEG_REDEFINE_1; seg_num < BU98R10_SEG_MAX; seg_num++)
{
SEG_BUFF_Set(chip_num,seg_num,7);
SEG_BUFF_Set(chip_num, seg_num, 7);
}
}
}
......@@ -1128,15 +1123,7 @@ void Seg_Display_OFF(void)
{
for (seg_num = SEG_REDEFINE_1; seg_num < BU98R10_SEG_MAX; seg_num++)
{
SEG_BUFF_Set(chip_num,seg_num,0);
SEG_BUFF_Set(chip_num, seg_num, 0);
}
}
}
......@@ -14,7 +14,7 @@ void SEG_LED_HI_BEAM_T(uint8_t seg_status);
void SEG_LED_Rr_FOG_LAMP_T(uint8_t seg_status);
void SEG_LED_MIL_T(uint8_t seg_status);
void SEG_LED_SVS_T(uint8_t seg_status);
void SEG_LED_H_S_A__T(uint8_t seg_status);
void SEG_LED_H_S_A_T(uint8_t seg_status);
void SEG_LED_RETARDER_T(uint8_t seg_status);
void SEG_LED_AUTO_LEVELING_T(uint8_t seg_status);
void SEG_LED_ROWS_L(uint8_t seg_status);
......
......@@ -7,53 +7,49 @@
typedef enum
{
em_LED_INTER_DIFF_LOCK_T ,
em_LED_FOUR_MUL_FOUR_T ,
em_LED_EXH_BRAKE_T ,
em_LED_QOS_GLOW_T ,
em_LED_HI_BEAM_T ,
em_LED_Rr_FOG_LAMP_T ,
em_LED_MIL_T ,
em_LED_SVS_T ,
em_LED_H_S_A__T ,
em_LED_RETARDER_T ,
em_LED_AUTO_LEVELING_T ,
em_LED_ROWS_L ,
em_LED_BSM_OFF_L ,
em_LED_AEBS_OFF_L ,
em_LED_LDWS_L ,
em_LED_SRS_L ,
em_LED_ENG_OIL_L ,
em_LED_CHARG_L ,
em_LED_SEAT_BELT_L ,
em_LED_RR_DIFF_LOCK_L ,
em_LED_TPMS_L ,
em_LED_ASR_or_EVSC_OFF_L ,
em_LED_EVSC_L ,
em_LED_eco_stop_OFF_L ,
em_LED_AMT_L ,
em_LED_WEAR_IND_L ,
em_LED_TRAILER_BRAKE_R ,
em_LED_BRAKE_AIR_or_EBS_YELLOW_R ,
em_LED_ACC_AIR_R ,
em_LED_ABS_R ,
em_LED_PARK_BRAKE_R ,
em_LED_BRAKE_AIR_or_EBS_RED_R ,
em_LED_BRAKE_LOCK_R ,
em_LED_AIR_SUS_R ,
em_LED_TRAILER_ABS_U ,
em_LED_WORKING_LAMP_U ,
em_LED_TRAILER_ABS_INFO_U ,
LED_Max ,
em_LED_INTER_DIFF_LOCK_T,
em_LED_FOUR_MUL_FOUR_T,
em_LED_EXH_BRAKE_T,
em_LED_QOS_GLOW_T,
em_LED_HI_BEAM_T,
em_LED_Rr_FOG_LAMP_T,
em_LED_MIL_T,
em_LED_SVS_T,
em_LED_H_S_A__T,
em_LED_RETARDER_T,
em_LED_AUTO_LEVELING_T,
em_LED_ROWS_L,
em_LED_BSM_OFF_L,
em_LED_AEBS_OFF_L,
em_LED_LDWS_L,
em_LED_SRS_L,
em_LED_ENG_OIL_L,
em_LED_CHARG_L,
em_LED_SEAT_BELT_L,
em_LED_RR_DIFF_LOCK_L,
em_LED_TPMS_L,
em_LED_ASR_or_EVSC_OFF_L,
em_LED_EVSC_L,
em_LED_eco_stop_OFF_L,
em_LED_AMT_L,
em_LED_WEAR_IND_L,
em_LED_TRAILER_BRAKE_R,
em_LED_BRAKE_AIR_or_EBS_YELLOW_R,
em_LED_ACC_AIR_R,
em_LED_ABS_R,
em_LED_PARK_BRAKE_R,
em_LED_BRAKE_AIR_or_EBS_RED_R,
em_LED_BRAKE_LOCK_R,
em_LED_AIR_SUS_R,
em_LED_TRAILER_ABS_U,
em_LED_WORKING_LAMP_U,
em_LED_TRAILER_ABS_INFO_U,
LED_Max,
} LED_Idx_t;
typedef uint8_t ( * LED_Judgment ) ( void );
typedef void ( * LED_Execution ) ( uint8_t led_status );
typedef uint8_t (*LED_Judgment)(void);
typedef void (*LED_Execution)(uint8_t led_status);
typedef struct
{
......@@ -79,18 +75,17 @@ typedef struct
typedef struct
{
uint8_t LastLeft;
uint8_t LastRight;
uint8_t Delay;
uint8_t LastLeft;
uint8_t LastRight;
uint8_t Delay;
} TelltaleLRCtrlStruct;
extern const LED_Attribute_st LED_Attribute[LED_Max];
extern const LED_Attribute_st LED_Attribute[LED_Max];
void Telltales_SetPara(ExternalPara_st *Para);
void Telltales_Management(void); /*50ms*/
void Telltales_Management(void); /*50ms*/
void Telltales_Left_Right_KL30_Init(void);
void Telltales_Left_Right_Management_Service(void) ;/*must put into 10ms task*/
void Telltales_Left_Right_Management_Service(void); /*must put into 10ms task*/
void Telltales_IG_ON_Work(void);
void Telltales_IGOFF_Work(void);
void Test_LED_AllLight(void);
......@@ -99,10 +94,6 @@ void Telltales_Wakeup_Init(void);
void Telltales_KL30_Init(void);
void Telltales_KL15_Init(void);
void LED_RIGHT_G_Execution(uint8_t led_status);
void LED_LEFT_G_Execution(uint8_t led_status);
uint8_t LED_RIGHT_G_Judgement(void);
......@@ -114,10 +105,6 @@ uint8_t GET_LED_POSITION_G(void);
void Write_LED_READY_G_Execution(uint8_t led_status);
uint8_t GET_LED_READY_G_Execution(void);
/*ZH:*/
/*LED点灯条件判别函数*/
uint8_t LED_INTER_DIFF_LOCK_T_Judgement(void);
......@@ -128,7 +115,7 @@ uint8_t LED_HI_BEAM_T_Judgement(void);
uint8_t LED_Rr_FOG_LAMP_T_Judgement(void);
uint8_t LED_MIL_T_Judgement(void);
uint8_t LED_SVS_T_Judgement(void);
uint8_t LED_H_S_A__T_Judgement(void);
uint8_t LED_H_S_A_T_Judgement(void);
uint8_t LED_RETARDER_T_Judgement(void);
uint8_t LED_AUTO_LEVELING_T_Judgement(void);
uint8_t LED_ROWS_L_Judgement(void);
......@@ -158,8 +145,6 @@ uint8_t LED_TRAILER_ABS_U_Judgement(void);
uint8_t LED_WORKING_LAMP_U_Judgement(void);
uint8_t LED_TRAILER_ABS_INFO_U_Judgement(void);
/*LED执行函数*/
void LED_INTER_DIFF_LOCK_T_Execution(uint8_t led_status);
void LED_FOUR_MUL_FOUR_T_Execution(uint8_t led_status);
......@@ -169,7 +154,7 @@ void LED_HI_BEAM_T_Execution(uint8_t led_status);
void LED_Rr_FOG_LAMP_T_Execution(uint8_t led_status);
void LED_MIL_T_Execution(uint8_t led_status);
void LED_SVS_T_Execution(uint8_t led_status);
void LED_H_S_A__T_Execution(uint8_t led_status);
void LED_H_S_A_T_Execution(uint8_t led_status);
void LED_RETARDER_T_Execution(uint8_t led_status);
void LED_AUTO_LEVELING_T_Execution(uint8_t led_status);
void LED_ROWS_L_Execution(uint8_t led_status);
......@@ -200,9 +185,4 @@ void LED_WORKING_LAMP_U_Execution(uint8_t led_status);
void LED_TRAILER_ABS_INFO_U_Execution(uint8_t led_status);
/*:ZH*/
#endif
......@@ -28,7 +28,7 @@ const LED_Attribute_st LED_Attribute[LED_Max] =
{ em_LED_Rr_FOG_LAMP_T , NoSelfCheck , NoExterNalCheck , LED_IGN_ON , 0u, 3000ul, LED_Rr_FOG_LAMP_T_Judgement , LED_Rr_FOG_LAMP_T_Execution },
{ em_LED_MIL_T , SelfCheck , NoExterNalCheck , LED_IGN_ON , 0u, 3000ul, LED_MIL_T_Judgement , LED_MIL_T_Execution },
{ em_LED_SVS_T , SelfCheck , NoExterNalCheck , LED_IGN_ON , 0u, 3000ul, LED_SVS_T_Judgement , LED_SVS_T_Execution },
{ em_LED_H_S_A__T , NoSelfCheck , NoExterNalCheck , LED_IGN_ON , 0u, 3000ul, LED_H_S_A__T_Judgement , LED_H_S_A__T_Execution },
{ em_LED_H_S_A__T , NoSelfCheck , NoExterNalCheck , LED_IGN_ON , 0u, 3000ul, LED_H_S_A_T_Judgement , LED_H_S_A_T_Execution },
{ em_LED_RETARDER_T , SelfCheck , NoExterNalCheck , LED_IGN_ON , 0u, 3000ul, LED_RETARDER_T_Judgement , LED_RETARDER_T_Execution },
{ em_LED_AUTO_LEVELING_T , NoSelfCheck , NoExterNalCheck , LED_IGN_ON , 0u, 3000ul, LED_AUTO_LEVELING_T_Judgement , LED_AUTO_LEVELING_T_Execution },
{ em_LED_ROWS_L , NoSelfCheck , NoExterNalCheck , LED_IGN_ON , 0u, 3000ul, LED_ROWS_L_Judgement , LED_ROWS_L_Execution },
......@@ -61,9 +61,6 @@ const LED_Attribute_st LED_Attribute[LED_Max] =
};
/*must put into 10ms task*/
void Telltales_Left_Right_KL30_Init(void);
......@@ -74,7 +71,7 @@ void Telltales_Left_Right_KL30_Init(void)
TelltaleLRCtrl.LastLeft = 0u;
TelltaleLRCtrl.Delay = 0u;
}
/*
uint8_t LED_LEFT_F = 0x00u;
uint8_t LED_RIGHT_F = 0x00u;
uint8_t LED_HI_BEAM_F = 0x00u;
......@@ -89,12 +86,17 @@ uint8_t LED_HDC_F = 0x00u;
uint8_t LED_HAC_F = 0x00u;
uint8_t LED_MAINTENANCE_F = 0x00u;
uint8_t LED_SEATBELT_F = 0x00u;
*/
/******************************************************************************
T3 L1 L2 L3 R1 R2 R3 U1 U4 U5无灯 左右转向单独 水温 燃油 气压1 气压2 在显示处做逻辑
******************************************************************************/
/*************************************
转向灯
**************************************/
/******************************************************************************
T0 左转向 T13 右转向
信号接口:
信号定义:
输出信号: T1_LED_OUT
******************************************************************************/
void Telltales_Left_Right_Management_Service(void) /*10ms*/
{
uint8_t Edge;
......@@ -106,7 +108,6 @@ void Telltales_Left_Right_Management_Service(void) /*10ms*/
Edge = 0xffu ;
if (LEFT_ST == 1u)//左转向
{
SEG_LED_TURN_LEFT(7);//左转向断码屏开
......@@ -222,6 +223,8 @@ void Test_LED_AllLight(void)
#define XXXX 0u
#define LED_BRIGHTNESS 0xff
uint8_t HYQ = 0U;
/******************************************************************************
T1 INTER DIFF LOCK
信号接口:
......@@ -260,22 +263,17 @@ void LED_INTER_DIFF_LOCK_T_Execution(uint8_t led_status)
}
}
/******************************************************************************
R6 ACC_AIR_LED_MCU_OUT
T2 指示灯不受控
信号接口:
信号定义:
输出信号: R6_LED_OUT
输出信号:
******************************************************************************/
uint8_t LED_ACC_AIR_R_Judgement(void)//done
uint8_t LED_FOUR_MUL_FOUR_T_Judgement(void)
{
uint8_t u8Result = 0u;
uint8_t m_Condition1 = 0u;
m_Condition1 = (uint8_t)Line_In_Get_Status(LINE_IN_ACC_AIR);
m_Condition1 = (uint8_t)XXXX;
if (m_Condition1 == 1u)
{
......@@ -288,44 +286,82 @@ uint8_t LED_ACC_AIR_R_Judgement(void)//done
return u8Result;
}
void LED_ACC_AIR_R_Execution(uint8_t led_status)
void LED_FOUR_MUL_FOUR_T_Execution(uint8_t led_status)
{
R6_LED_OUT = led_status;
if (led_status == 1)
{
IS31_CHIP0_CHANNEL35 = LED_BRIGHTNESS;
}
else
{
IS31_CHIP0_CHANNEL35 = 0x00;
}
if (led_status == 1)
{
SEG_LED_ACC_AIR_R(7);
SEG_LED_FOUR_MUL_FOUR_T(7);
}
else
{
SEG_LED_ACC_AIR_R(0);
SEG_LED_FOUR_MUL_FOUR_T(0);
}
}
/******************************************************************************
R5
T4 EXH BRAKE
信号接口:
信号定义:
输出信号:BRAKE_AIR/EBS_LED_MCU
输出信号:
******************************************************************************/
uint8_t LED_EXH_BRAKE_T_Judgement(void)
{
uint8_t u8Result = 0u;
uint8_t m_Condition1 = 0u;
m_Condition1 = (uint8_t)Get_ID_18FF2300_Sig_Exh_Lamp();
if (m_Condition1 == 0u)
{
u8Result = 1u;
}
else
{
u8Result = 0u;
}
return u8Result;
}
void LED_EXH_BRAKE_T_Execution(uint8_t led_status)
{
if (led_status == 1)
{
IS31_CHIP0_CHANNEL34 = LED_BRIGHTNESS;
}
else
{
IS31_CHIP0_CHANNEL34 = 0x00;
}
if (led_status == 1)
{
SEG_LED_EXH_BRAKE_T(7);
}
else
{
SEG_LED_EXH_BRAKE_T(0);
}
}
/******************************************************************************
U2
T5 QOS(GLOW)
信号接口:
信号定义:
输出信号:U2_LED_OUT
输出信号:
******************************************************************************/
uint8_t LED_TRAILER_ABS_U_Judgement(void)//done
uint8_t LED_QOS_GLOW_T_Judgement(void)
{
uint8_t u8Result = 0u;
uint8_t m_Condition1 = 0u;
m_Condition1 = (uint8_t)Line_In_Get_Status(LINE_IN_TRAILER_ABS);
m_Condition1 = (uint8_t)Get_ID_18FF2300_Sig_Glow_Lamp();
if (m_Condition1 == 1u)
{
......@@ -338,32 +374,37 @@ uint8_t LED_TRAILER_ABS_U_Judgement(void)//done
return u8Result;
}
void LED_TRAILER_ABS_U_Execution(uint8_t led_status)
void LED_QOS_GLOW_T_Execution(uint8_t led_status)
{
//U2_LED_OUT = led_status;
if (led_status == 1)
{
IS31_CHIP0_CHANNEL33 = LED_BRIGHTNESS;
}
else
{
IS31_CHIP0_CHANNEL33 = 0x00;
}
if (led_status == 1)
{
SEG_LED_TRAILER_ABS_U(7);
SEG_LED_QOS_GLOW_T(7);
}
else
{
SEG_LED_TRAILER_ABS_U(0);
SEG_LED_QOS_GLOW_T(0);
}
}
/******************************************************************************
T6 HI BEAM
信号接口:
信号定义:
输出信号:
******************************************************************************/
uint8_t LED_FOUR_MUL_FOUR_T_Judgement(void)
uint8_t LED_HI_BEAM_T_Judgement(void)
{
uint8_t u8Result = 0u;
uint8_t m_Condition1 = 0u;
m_Condition1 = (uint8_t)XXXX;
m_Condition1 = (uint8_t)Line_In_Get_Status(LINE_IN_HI_BEAM);
if (m_Condition1 == 1u)
{
......@@ -376,30 +417,38 @@ uint8_t LED_FOUR_MUL_FOUR_T_Judgement(void)
return u8Result;
}
uint8_t LED_EXH_BRAKE_T_Judgement(void)//done
void LED_HI_BEAM_T_Execution(uint8_t led_status)
{
uint8_t u8Result = 0u;
uint8_t m_Condition1 = 0u;
m_Condition1 = (uint8_t)Get_ID_18FF2300_Sig_Exh_Lamp();
if (m_Condition1 == 0u)
if (led_status == 1)
{
u8Result = 1u;
IS31_CHIP0_CHANNEL32 = LED_BRIGHTNESS;
}
else
{
u8Result = 0u;
IS31_CHIP0_CHANNEL32 = 0x00;
}
return u8Result;
if (led_status == 1)
{
SEG_LED_HI_BEAM_T(7);
}
else
{
SEG_LED_HI_BEAM_T(0);
}
}
uint8_t LED_QOS_GLOW_T_Judgement(void)//done
/******************************************************************************
T7 Rr FOG LAMP
信号接口:
信号定义:
输出信号:
******************************************************************************/
uint8_t LED_Rr_FOG_LAMP_T_Judgement(void)
{
uint8_t u8Result = 0u;
uint8_t m_Condition1 = 0u;
m_Condition1 = (uint8_t)Get_ID_18FF2300_Sig_Glow_Lamp();
m_Condition1 = (uint8_t)Line_In_Get_Status(LINE_IN_Rr_FOG_LAMP);
if (m_Condition1 == 1u)
{
......@@ -412,30 +461,75 @@ uint8_t LED_QOS_GLOW_T_Judgement(void)//done
return u8Result;
}
void LED_Rr_FOG_LAMP_T_Execution(uint8_t led_status)
{
T7_LED_OUT = led_status;
if (led_status == 1)
{
SEG_LED_Rr_FOG_LAMP_T(7);
}
else
{
SEG_LED_Rr_FOG_LAMP_T(0);
}
}
uint8_t LED_HI_BEAM_T_Judgement(void)//done
/******************************************************************************
T8 MIL
信号接口:
信号定义:
输出信号:
******************************************************************************/
uint8_t LED_MIL_T_Judgement(void)
{
uint8_t u8Result = 0u;
uint8_t m_Condition1 = 0u;
m_Condition1 = (uint8_t)Line_In_Get_Status(LINE_IN_HI_BEAM);
m_Condition1 = (uint8_t)Line_In_Get_Status(LINE_IN_MIL);
if (m_Condition1 == 1u)
{
u8Result = 1u;
u8Result = 0u;
}
else
{
u8Result = 0u;
u8Result = 1u;
}
return u8Result;
}
void LED_MIL_T_Execution(uint8_t led_status)
{
if (led_status == 1)
{
IS31_CHIP0_CHANNEL31 = LED_BRIGHTNESS;
}
else
{
IS31_CHIP0_CHANNEL31 = 0x00;
}
if (led_status == 1)
{
SEG_LED_MIL_T(7);
}
else
{
SEG_LED_MIL_T(0);
}
}
uint8_t LED_Rr_FOG_LAMP_T_Judgement(void)//done
/******************************************************************************
T9 SVS
信号接口:
信号定义:
输出信号:
******************************************************************************/
uint8_t LED_SVS_T_Judgement(void)
{
uint8_t u8Result = 0u;
uint8_t m_Condition1 = 0u;
m_Condition1 = (uint8_t)Line_In_Get_Status(LINE_IN_Rr_FOG_LAMP);
m_Condition1 = (uint8_t)Get_ID_18FED900_Sig_SVS_Lamp_Status();
if (m_Condition1 == 1u)
{
......@@ -448,30 +542,38 @@ uint8_t LED_Rr_FOG_LAMP_T_Judgement(void)//done
return u8Result;
}
uint8_t LED_MIL_T_Judgement(void)//done
void LED_SVS_T_Execution(uint8_t led_status)
{
uint8_t u8Result = 0u;
uint8_t m_Condition1 = 0u;
m_Condition1 = (uint8_t)Line_In_Get_Status(LINE_IN_MIL);
if (m_Condition1 == 1u)
if (led_status == 1)
{
u8Result = 0u;
IS31_CHIP0_CHANNEL30 = LED_BRIGHTNESS;
}
else
{
u8Result = 1u;
IS31_CHIP0_CHANNEL30 = 0x00;
}
return u8Result;
if (led_status == 1)
{
SEG_LED_SVS_T(7);
}
else
{
SEG_LED_SVS_T(0);
}
}
uint8_t LED_SVS_T_Judgement(void)//done
/******************************************************************************
T10 H.S.A
信号接口:
信号定义:
输出信号:
******************************************************************************/
uint8_t LED_H_S_A_T_Judgement(void)
{
uint8_t u8Result = 0u;
uint8_t m_Condition1 = 0u;
m_Condition1 = (uint8_t)Get_ID_18FED900_Sig_SVS_Lamp_Status();
m_Condition1 = (uint8_t)XXXX;
if (m_Condition1 == 1u)
{
......@@ -484,68 +586,409 @@ uint8_t LED_SVS_T_Judgement(void)//done
return u8Result;
}
void LED_H_S_A_T_Execution(uint8_t led_status)
{
if (led_status == 1)
{
IS31_CHIP0_CHANNEL28 = LED_BRIGHTNESS; // 绿灯 亮
IS31_CHIP0_CHANNEL29 = 0x00; // 黄灯 灭
}
else if (led_status == 2)
{
IS31_CHIP0_CHANNEL28 = 0x00; // 绿灯 灭
IS31_CHIP0_CHANNEL29 = LED_BRIGHTNESS; // 黄灯 亮
}
else
{
IS31_CHIP0_CHANNEL28 = 0x00; // 绿灯 灭
IS31_CHIP0_CHANNEL29 = 0x00; // 黄灯 灭
}
uint8_t LED_H_S_A__T_Judgement(void)
if ((led_status == 1) || (led_status == 2))
{
SEG_LED_H_S_A_T(7);
}
else
{
SEG_LED_H_S_A_T(0);
}
}
/******************************************************************************
T11 RETARDER
信号接口:
信号定义:
输出信号:
******************************************************************************/
uint8_t LED_RETARDER_T_Judgement(void)
{
uint8_t u8Result = 0u;
uint8_t m_Condition1 = 0u;
m_Condition1 = (uint8_t)XXXX;
m_Condition1 = (uint8_t)Get_ID_18FF5510_Sig_Intarder_Pilot_Lamp_State();
if (m_Condition1 == 1u)
{
u8Result = 1u;
}
else if (m_Condition1 == 2u)
{
if (FLASH_SYNC_1Hz == 1u)
{
u8Result = 2u;
}
else
{
u8Result = 0u;
}
}
else
{
u8Result = 0u;
}
return u8Result;
}
return u8Result;
}
void LED_RETARDER_T_Execution(uint8_t led_status)
{
if (led_status == 1)
{
IS31_CHIP0_CHANNEL27 = LED_BRIGHTNESS; // 绿灯 亮
IS31_CHIP0_CHANNEL26 = 0x00; // 黄灯 灭
}
else if (led_status == 2)
{
IS31_CHIP0_CHANNEL27 = 0x00; // 绿灯 灭
IS31_CHIP0_CHANNEL26 = LED_BRIGHTNESS; // 黄灯 亮
}
else
{
IS31_CHIP0_CHANNEL27 = 0x00; // 绿灯 灭
IS31_CHIP0_CHANNEL26 = 0x00; // 黄灯 灭
}
if ((led_status == 1) || (led_status == 2))
{
SEG_LED_RETARDER_T(7);
}
else
{
SEG_LED_RETARDER_T(0);
}
}
/******************************************************************************
T12 AUTO LEVELING
信号接口:
信号定义:
输出信号:
******************************************************************************/
uint8_t LED_AUTO_LEVELING_T_Judgement(void)
{
uint8_t u8Result = 0u;
uint8_t m_Condition1 = 0u;
m_Condition1 = (uint8_t)XXXX;
if (m_Condition1 == 1u)
{
u8Result = 1u;
}
else
{
u8Result = 0u;
}
return u8Result;
}
void LED_AUTO_LEVELING_T_Execution(uint8_t led_status)
{
if (led_status == 1)
{
IS31_CHIP0_CHANNEL25 = LED_BRIGHTNESS;
}
else
{
IS31_CHIP0_CHANNEL25 = 0x00;
}
if (led_status == 1)
{
SEG_LED_AUTO_LEVELING_T(7);
}
else
{
SEG_LED_AUTO_LEVELING_T(0);
}
}
/******************************************************************************
L4
信号接口:
信号定义:
输出信号:
******************************************************************************/
/******************************************************************************
L4
信号接口:
信号定义:
输出信号:
******************************************************************************/
/******************************************************************************
L4
信号接口:
信号定义:
输出信号:
******************************************************************************/
/******************************************************************************
L4
信号接口:
信号定义:
输出信号:
******************************************************************************/
/******************************************************************************
L4
信号接口:
信号定义:
输出信号:
******************************************************************************/
/******************************************************************************
L4
信号接口:
信号定义:
输出信号:
******************************************************************************/
/******************************************************************************
L4
信号接口:
信号定义:
输出信号:
******************************************************************************/
/******************************************************************************
L4
信号接口:
信号定义:
输出信号:
******************************************************************************/
/******************************************************************************
L4
信号接口:
信号定义:
输出信号:
******************************************************************************/
/******************************************************************************
L4
信号接口:
信号定义:
输出信号:
******************************************************************************/
/******************************************************************************
L4
信号接口:
信号定义:
输出信号:
******************************************************************************/
/******************************************************************************
L4
信号接口:
信号定义:
输出信号:
******************************************************************************/
/******************************************************************************
L4
信号接口:
信号定义:
输出信号:
******************************************************************************/
/******************************************************************************
L4
信号接口:
信号定义:
输出信号:
******************************************************************************/
/******************************************************************************
L4
信号接口:
信号定义:
输出信号:
******************************************************************************/
/******************************************************************************
R4
信号接口:
信号定义:
输出信号:
******************************************************************************/
/******************************************************************************
R5
信号接口:
信号定义:
输出信号:
******************************************************************************/
/******************************************************************************
R6 ACC_AIR_LED_MCU_OUT
信号接口:
信号定义:
输出信号: R6_LED_OUT
******************************************************************************/
uint8_t LED_ACC_AIR_R_Judgement(void)//done
{
uint8_t u8Result = 0u;
uint8_t m_Condition1 = 0u;
m_Condition1 = (uint8_t)Line_In_Get_Status(LINE_IN_ACC_AIR);
if (m_Condition1 == 1u)
{
u8Result = 1u;
}
else
{
u8Result = 0u;
}
return u8Result;
}
void LED_ACC_AIR_R_Execution(uint8_t led_status)
{
R6_LED_OUT = led_status;
if (led_status == 1)
{
SEG_LED_ACC_AIR_R(7);
}
else
{
SEG_LED_ACC_AIR_R(0);
}
}
/******************************************************************************
R7
信号接口:
信号定义:
输出信号:
******************************************************************************/
/******************************************************************************
R8
信号接口:
信号定义:
输出信号:
******************************************************************************/
/******************************************************************************
R9
信号接口:
信号定义:
输出信号:
******************************************************************************/
/******************************************************************************
R10
信号接口:
信号定义:
输出信号:
******************************************************************************/
/******************************************************************************
R11
信号接口:
信号定义:
输出信号:
******************************************************************************/
/******************************************************************************
U2
信号接口:
信号定义:
输出信号:U2_LED_OUT
******************************************************************************/
uint8_t LED_TRAILER_ABS_U_Judgement(void)//done
{
uint8_t u8Result = 0u;
uint8_t m_Condition1 = 0u;
m_Condition1 = (uint8_t)Line_In_Get_Status(LINE_IN_TRAILER_ABS);
if (m_Condition1 == 1u)
{
u8Result = 1u;
}
else
{
u8Result = 0u;
}
return u8Result;
}
void LED_TRAILER_ABS_U_Execution(uint8_t led_status)
{
//U2_LED_OUT = led_status;
if (led_status == 1)
{
SEG_LED_TRAILER_ABS_U(7);
}
else
{
SEG_LED_TRAILER_ABS_U(0);
}
}
/******************************************************************************
U3
信号接口:
信号定义:
输出信号:
******************************************************************************/
/******************************************************************************
U6
信号接口:
信号定义:
输出信号:
******************************************************************************/
/******************************************************************************
信号接口:
信号定义:
输出信号:
******************************************************************************/
uint8_t LED_RETARDER_T_Judgement(void)//done
{
uint8_t u8Result = 0u;
uint8_t m_Condition1 = 0u;
//FLASH_SYNC_1Hz <----这个是闪烁源
m_Condition1 = (uint8_t)Get_ID_18FF5510_Sig_Intarder_Pilot_Lamp_State();
if (m_Condition1 == 1u)
{
u8Result = 1u;
}
else if (m_Condition1 == 2u)
{
if (FLASH_SYNC_1Hz == 1u)
u8Result = 2u;
else
u8Result = 0u;
}
else
{
u8Result = 0u;
}
return u8Result;
}
uint8_t LED_AUTO_LEVELING_T_Judgement(void)
{
uint8_t u8Result = 0u;
uint8_t m_Condition1 = 0u;
m_Condition1 = (uint8_t)XXXX;
if (m_Condition1 == 1u)
{
u8Result = 1u;
}
else
{
u8Result = 0u;
}
return u8Result;
}
uint8_t LED_ROWS_L_Judgement(void)
{
......@@ -1073,242 +1516,22 @@ uint8_t LED_TRAILER_ABS_INFO_U_Judgement(void)//done
void LED_FOUR_MUL_FOUR_T_Execution(uint8_t led_status)
{
if (led_status == 1)
{
IS31_CHIP0_CHANNEL35 = LED_BRIGHTNESS;
}
else
{
IS31_CHIP0_CHANNEL35 = 0x00;
}
if (led_status == 1)
{
SEG_LED_FOUR_MUL_FOUR_T(7);
}
else
{
SEG_LED_FOUR_MUL_FOUR_T(0);
}
}
void LED_EXH_BRAKE_T_Execution(uint8_t led_status)
{
if (led_status == 1)
{
IS31_CHIP0_CHANNEL34 = LED_BRIGHTNESS;
}
else
{
IS31_CHIP0_CHANNEL34 = 0x00;
}
if (led_status == 1)
{
SEG_LED_EXH_BRAKE_T(7);
}
else
{
SEG_LED_EXH_BRAKE_T(0);
}
}
void LED_QOS_GLOW_T_Execution(uint8_t led_status)
{
if (led_status == 1)
{
IS31_CHIP0_CHANNEL33 = LED_BRIGHTNESS;
}
else
{
IS31_CHIP0_CHANNEL33 = 0x00;
}
if (led_status == 1)
{
SEG_LED_QOS_GLOW_T(7);
}
else
{
SEG_LED_QOS_GLOW_T(0);
}
}
void LED_HI_BEAM_T_Execution(uint8_t led_status)
{
if (led_status == 1)
{
IS31_CHIP0_CHANNEL32 = LED_BRIGHTNESS;
}
else
{
IS31_CHIP0_CHANNEL32 = 0x00;
}
if (led_status == 1)
{
SEG_LED_HI_BEAM_T(7);
}
else
{
SEG_LED_HI_BEAM_T(0);
}
}
void LED_Rr_FOG_LAMP_T_Execution(uint8_t led_status)
{
//Rr_FOG_MCU_OUT = led_status;
if (led_status == 1)
{
SEG_LED_Rr_FOG_LAMP_T(7);
}
else
{
SEG_LED_Rr_FOG_LAMP_T(0);
}
}
void LED_MIL_T_Execution(uint8_t led_status)
{
if (led_status == 1)
{
IS31_CHIP0_CHANNEL31 = LED_BRIGHTNESS;
}
else
{
IS31_CHIP0_CHANNEL31 = 0x00;
}
if (led_status == 1)
{
SEG_LED_MIL_T(7);
}
else
{
SEG_LED_MIL_T(0);
}
}
void LED_SVS_T_Execution(uint8_t led_status)
{
if (led_status == 1)
{
IS31_CHIP0_CHANNEL30 = LED_BRIGHTNESS;
}
else
{
IS31_CHIP0_CHANNEL30 = 0x00;
}
if (led_status == 1)
{
SEG_LED_SVS_T(7);
}
else
{
SEG_LED_SVS_T(0);
}
}
/*************************************************************
H.S.A 指示灯 双色点亮说明:0灭 1绿 2黄
**************************************************************
led_status = 0 时, 此灯位: 绿灯 熄灭 且 黄灯 熄灭 ;
led_status = 1 时, 此灯位: 绿灯 点亮 且 黄灯 熄灭 ;
led_status = 2 时, 此灯位: 绿灯 熄灭 且 黄灯 点亮 ;
**************************************************************/
void LED_H_S_A__T_Execution(uint8_t led_status)
{
if (led_status == 1)
{
IS31_CHIP0_CHANNEL28 = LED_BRIGHTNESS; // 绿灯 亮
IS31_CHIP0_CHANNEL29 = 0x00; // 黄灯 灭
}
else if (led_status == 2)
{
IS31_CHIP0_CHANNEL28 = 0x00; // 绿灯 灭
IS31_CHIP0_CHANNEL29 = LED_BRIGHTNESS; // 黄灯 亮
}
else
{
IS31_CHIP0_CHANNEL28 = 0x00; // 绿灯 灭
IS31_CHIP0_CHANNEL29 = 0x00; // 黄灯 灭
}
if ((led_status == 1) || (led_status == 2))
{
SEG_LED_H_S_A__T(7);
}
else
{
SEG_LED_H_S_A__T(0);
}
}
/*************************************************************
RETARDER 指示灯 双色点亮说明:0灭 1绿 2黄
**************************************************************
led_status = 0 时, 此灯位: 绿灯 熄灭 且 黄灯 熄灭 ;
led_status = 1 时, 此灯位: 绿灯 点亮 且 黄灯 熄灭 ;
led_status = 2 时, 此灯位: 绿灯 熄灭 且 黄灯 点亮 ;
**************************************************************/
void LED_RETARDER_T_Execution(uint8_t led_status)
{
if (led_status == 1)
{
IS31_CHIP0_CHANNEL27 = LED_BRIGHTNESS; // 绿灯 亮
IS31_CHIP0_CHANNEL26 = 0x00; // 黄灯 灭
}
else if (led_status == 2)
{
IS31_CHIP0_CHANNEL27 = 0x00; // 绿灯 灭
IS31_CHIP0_CHANNEL26 = LED_BRIGHTNESS; // 黄灯 亮
}
else
{
IS31_CHIP0_CHANNEL27 = 0x00; // 绿灯 灭
IS31_CHIP0_CHANNEL26 = 0x00; // 黄灯 灭
}
if ((led_status == 1) || (led_status == 2))
{
SEG_LED_RETARDER_T(7);
}
else
{
SEG_LED_RETARDER_T(0);
}
}
void LED_AUTO_LEVELING_T_Execution(uint8_t led_status)
{
if (led_status == 1)
{
IS31_CHIP0_CHANNEL25 = LED_BRIGHTNESS;
}
else
{
IS31_CHIP0_CHANNEL25 = 0x00;
}
if (led_status == 1)
{
SEG_LED_AUTO_LEVELING_T(7);
}
else
{
SEG_LED_AUTO_LEVELING_T(0);
}
}
void LED_ROWS_L_Execution(uint8_t led_status)
{
......
......@@ -3,7 +3,6 @@
#include "TYW_stdint.h"
void Write_LED_RGIHT_G_Judgement(uint8_t led_status);
void Write_LED_LEFT_G_Judgement(uint8_t led_status);
......@@ -11,14 +10,3 @@ uint8_t GET_LED_RIGHT_G_Judgement(void);
uint8_t GET_LED_LEFT_G_Judgement(void);
#endif
......@@ -40,7 +40,7 @@ extern void UDS_N_USData_Indication(uint32_t N_TAtype, uint8_t *MessageData, uin
******************************************************************************/
void DoCAN_Communication_Service ( void )
{
DoCAN_Update_Timer();
DoCAN_Handle_Time_Out();
......@@ -80,7 +80,7 @@ void DoCAN_N_USData_Request ( uint32_t N_TAtype, uint8_t MessageData[], uint16_t
uint32_t id;
uint8_t dlc;
uint8_t data[8];
/*非空闲状态下不允许发送*/
if ( TpCtrl.Process != TP_IDLE )
{
......@@ -155,7 +155,7 @@ void DoCAN_N_USData_Request ( uint32_t N_TAtype, uint8_t MessageData[], uint16_t
dlc = TransportTxData.Frame.DLC;
for (i = 0u; i < 8u; ++i)
{
data[i] = TransportTxData.Frame.Data[i];
data[i] = TransportTxData.Frame.Data[i];
}
/*TpCtrl.TxReq = 1u;*/
DoCAN_Start_Timer ( TIMING_PARA_N_As ); /*启动N_As计时*/
......@@ -243,18 +243,18 @@ void DoCAN_L_Data_Request ( uint32_t Identifier, uint8_t dlc, uint8_t Data[] )
for ( i = 0u; i < dlc; i++ )
{
temp = Data[i];
LinkTxCtrl.Data[i] = temp;
LinkTxCtrl.Data[i] = temp;
}
#if FILLER_BYTE_HANDLING
for ( i = dlc; i < 8u; i++ )
{
LinkTxCtrl.Data[i] = FILLER_BYTE;
}
RSCAN0_SendCH0_TxBuf0(LinkTxCtrl.Identifier,8U,1U,LinkTxCtrl.Data);
#else
RSCAN0_SendCH0_TxBuf0(LinkTxCtrl.Identifier,8U,1U,LinkTxCtrl.Data);
RSCAN0_SendCH0_TxBuf0(LinkTxCtrl.Identifier, 8U, 1U, LinkTxCtrl.Data);
#else
RSCAN0_SendCH0_TxBuf0(LinkTxCtrl.Identifier, 8U, 1U, LinkTxCtrl.Data);
#endif
LinkTxCtrl.Busy = 1u;
}
......@@ -341,7 +341,7 @@ void DoCAN_L_Data_Confirm ( uint32_t Identifier, uint8_t TransferStatus )
}
else
{
/* TpCtrl.TxReq = 1u;*/ /*发送失败,重发*/
/* TpCtrl.TxReq = 1u;*/ /*发送失败,重发*/
}
}
}
......@@ -879,11 +879,11 @@ void DoCAN_Receive_Flow_Control ( void )
******************************************************************************/
void DoCAN_Transmit_Flow_Control ( void )
{
uint8_t i;
uint32_t id;
uint8_t dlc;
uint8_t data[8];
uint8_t i;
uint32_t id;
uint8_t dlc;
uint8_t data[8];
if ( TpCtrl.Process == TP_RX_INIT )
{
/*-------------------------------------------------------------------------
......@@ -914,17 +914,17 @@ void DoCAN_Transmit_Flow_Control ( void )
TransportTxData.N_PDU_FC.DLC = 3u;
/*TpCtrl.TxReq = 1u;*/
id = TransportTxData.Frame.Identifier;
dlc = TransportTxData.Frame.DLC;
for (i = 0u; i < 8u; ++i)
{
data[i] = TransportTxData.Frame.Data[i];
data[i] = TransportTxData.Frame.Data[i];
}
DoCAN_Start_Timer ( TIMING_PARA_N_Ar ); /*启动N_Ar计时*/
DoCAN_L_Data_Request(id, dlc, data);
}
else if ( TpCtrl.Process == TP_RX_CTS )
{
......@@ -973,10 +973,10 @@ void DoCAN_Transmit_Flow_Control ( void )
{
data[i] = TransportTxData.Frame.Data[i];
}
DoCAN_Start_Timer ( TIMING_PARA_N_Ar ); /*启动N_Ar计时*/
DoCAN_Start_Timer ( TIMING_PARA_N_Ar ); /*启动N_Ar计时*/
DoCAN_L_Data_Request(id, dlc, data);
}
}
}
......@@ -1039,12 +1039,12 @@ void DoCAN_Disassemble_And_Transmit_N_USData ( void )
dlc = TransportTxData.Frame.DLC;
for (i = 0u; i < 8u; ++i)
{
data[i] = TransportTxData.Frame.Data[i];
data[i] = TransportTxData.Frame.Data[i];
}
DoCAN_Start_Timer ( TIMING_PARA_N_As ); /*启动N_As计时*/
DoCAN_L_Data_Request(id, dlc, data);
DoCAN_L_Data_Request(id, dlc, data);
}
else if (TpCtrl.BlockCnt == TpCtrl.BlockSize - 1u) /*将要发送最后一帧*/
{
......@@ -1060,13 +1060,13 @@ void DoCAN_Disassemble_And_Transmit_N_USData ( void )
dlc = TransportTxData.Frame.DLC;
for (i = 0u; i < 8u; ++i)
{
data[i] = TransportTxData.Frame.Data[i];
data[i] = TransportTxData.Frame.Data[i];
}
DoCAN_Start_Timer ( TIMING_PARA_N_As ); /*启动N_As计时*/
DoCAN_Start_Timer ( TIMING_PARA_N_As ); /*启动N_As计时*/
DoCAN_L_Data_Request(id, dlc, data);
/* TpCtrl.TxReq = 1u;*/
/* TpCtrl.TxReq = 1u;*/
}
else /*已发送帧数不可能大于帧总数,除非有错误发生*/
{
......@@ -1216,7 +1216,7 @@ void DoCAN_Handle_Time_Out ( void )
void UDS_TP_ArTimeOutHandle(void)
{
Can_Uds_Abort();
}
......@@ -1295,10 +1295,10 @@ void DoCAN_Start_STmin_Timer ( uint8_t STminTime )
{
if ( STminTime <= 0x7Fu ) /*0x00 - 0x7F:0ms - 127ms*/
{
STminTime++;
TpTimingCtrl.STimer = ((uint32_t) (STminTime) * (uint32_t) 1000);
TpTimingCtrl.STimer = ((uint32_t) (STminTime) * (uint32_t) 1000);
}
else if ( ( STminTime >= 0xF1u ) && ( STminTime <= 0xF9u ) ) /*0xF1 - 0xF9:100us - 900us*/
{
......
......@@ -45,15 +45,15 @@ typedef enum
BUZZER_Track_Index_Pling ,
BUZZER_Track_Index_Plong ,
BUZZER_Track_Index_ParkBeep ,
BUZZER_Track_Index_3900hz_500Dty,
BUZZER_Track_Index_2300hz_500Dty,
BUZZER_Track_Index_3900hz_280Dty,
BUZZER_Track_Index_3900hz_500Dty,
BUZZER_Track_Index_2300hz_500Dty,
BUZZER_Track_Index_3900hz_280Dty,
BUZZER_Track_Index_2300hz_280Dty,
BUZZER_Track_Index_3900hz_190Dty,
BUZZER_Track_Index_2600hz_167Dty,
BUZZER_Track_Index_3900hz_190Dty,
BUZZER_Track_Index_2600hz_167Dty,
BUZZER_Track_Index_2000hz_500Dty,
BUZZER_Track_Index_0800hz_500Dty,
BUZZER_Track_Index_0800hz_500Dty,
BUZZER_Track_Index_MAX,
} BUZZER_Track_Index_en_t;
......
......@@ -35,6 +35,7 @@ void CD4051B_KL15Init(void)
CD4051B_CurrentChannel = 0u;
}
/****************************************************************************
CD4051B_ChannelSet
CD4051B_C_MCU CD4051B_B_MCU CD4051B_A_MCU Channel ON
......@@ -61,6 +62,7 @@ void CD4051B_ChannelSet(CD4051BChannel Ch)
;
}
}
/****************************************************************************
函数名:CD4051B_ChannelGet
形参:无
......@@ -102,6 +104,7 @@ void CD4051B_ReadSignal_Serviece(void)
CD4051B_ChannelSet(channel);
}
/****************************************************************************
CD4051B_Debounce_Service
......@@ -152,6 +155,7 @@ void CD4051B_Debounce_Service(void)
}
}
}
/****************************************************************************
CD4051B_GetComValue
......
......@@ -99,7 +99,7 @@ extern uint16_t CD4051B_GeneralCOM_Value[COMTotal][MaxChannel];
#define CD4051_COM5_X6_IN (CD4051B_GeneralCOM_Value[COM5][Channel6]) /*B31*/
#define CD4051_COM5_X7_IN (CD4051B_GeneralCOM_Value[COM5][Channel7]) /*B30*/
/*COM6映射PCB*/
#define CD4051_COM6_X0_IN (CD4051B_GeneralCOM_Value[COM6][Channel0]) /*A06*/
#define CD4051_COM6_X0_IN (CD4051B_GeneralCOM_Value[COM6][Channel0]) /*B06*/
#define CD4051_COM6_X1_IN (CD4051B_GeneralCOM_Value[COM6][Channel1]) /*B07*/
#define CD4051_COM6_X2_IN (CD4051B_GeneralCOM_Value[COM6][Channel2]) /*B08*/
#define CD4051_COM6_X3_IN (CD4051B_GeneralCOM_Value[COM6][Channel3]) /*B05*/
......
/**************************************************************************//**
* \file Tasks.c
* \brief Task list
* \details
* \author Zhang Xuan
* \version V1.0.0
* \date 07-Sep-2018
* \par History:
* V1.0.0 Initial release
* \par Copyright:
* (c) Heilongjiang TYW Electronics co., LTD
******************************************************************************/
/**************************************************************************
* \file Tasks.c
* \brief Task list
* \details
* \author Zhang Xuan
* \version V1.0.0
* \date 07-Sep-2018
* \par History:
* V1.0.0 Initial release
* \par Copyright:
* (c) Heilongjiang TYW Electronics co., LTD
******************************************************************************/
#include "r_typedefs.h"
#include "Sys_Scheduler.h"
#include "rh850_macros.h"
......@@ -17,7 +17,6 @@
#include "Analog_Signals.h"
#include "RTC.h"
#include "Watchdog.h"
#include "debugger.h"
......@@ -33,7 +32,6 @@
#include "System_Monitor.h"
#include "Common_Interface.h"
#include "Services_ODO_User.h"
#include "Data_CoolantTemperature.h"
#include "Data_VehicleSpeed.h"
......@@ -93,10 +91,10 @@
#include "Buzzer.h"
/*******************************************************************************
* *
* 系统常规运行模式(SYS_MODE_OFF / SYS_MODE_ON / SYS_MODE_STANDBY )任务列表 *
* *
*******************************************************************************/
* *
* 系统常规运行模式(SYS_MODE_OFF / SYS_MODE_ON / SYS_MODE_STANDBY )任务列表 *
* *
*******************************************************************************/
/*==============================================================================
伪实时任务
......@@ -109,13 +107,9 @@ void Sys_Run_Mode_Pseudo_Real_Time_Tasks(void)
UDS_Server_Application_Service();
IS31_Service();
BU98R10_Update_Service();
}
/*============================================================================*/
/*==============================================================================
2ms周期执行任务
------------------------------------------------------------------------------*/
......@@ -147,12 +141,12 @@ void Sys_Run_Mode_10ms_Tasks(void)
Data_Mileage_Write_EEPROM();
Line_In_Debounce_Service();
Telltales_Management();
//Test_LED_AllLight();
// Test_LED_AllLight();
Key_Service();
CAN_BUSOFF_Recover();
DisplayServices();
/*表头调度函数 added by yutian*/
UserGaugeSchedule();/*在主循环中调用*/
UserGaugeSchedule(); /*在主循环中调用*/
/*end*/
CD4051B_ReadSignal_Serviece();
Sound_Play_Service();
......@@ -163,7 +157,6 @@ void Sys_Run_Mode_10ms_Tasks(void)
}
/*============================================================================*/
/*==============================================================================
20ms周期执行任务
------------------------------------------------------------------------------*/
......@@ -179,19 +172,15 @@ void Sys_Run_Mode_20ms_Tasks(void)
DrivingSupport_Processing_Service();
AirPressure_Processing_Service();
Voltmeter_Processing_Service();
Buzzer_Track_Play_Service();
Sound_Management_Service();
CD4051B_Debounce_Service();
Seg_Display_Service();
Seg_Buffer_Commit();
BU98R10_Update_Request();
Buzzer_Track_Play_Service();
}
/*============================================================================*/
/*==============================================================================
50ms周期执行任务
------------------------------------------------------------------------------*/
......@@ -203,12 +192,11 @@ void Sys_Run_Mode_50ms_Tasks(void)
Data_Service_Gear_Processing();
Speed_PPK_Processing();
Sound_Scheduling_Service();
//BGTask();
// BGTask();
IS31_Scan_Refresh();
}
/*============================================================================*/
/*==============================================================================
100ms周期执行任务
------------------------------------------------------------------------------*/
......@@ -219,16 +207,16 @@ void Sys_Run_Mode_100ms_Tasks(void)
RTE_RTC_Services_100Ms_Cbk();
Data_ODO_Processing();
Data_Trip_Processing();
//Data_Avg_Speed_Processing();
// Data_Avg_Speed_Processing();
Data_TPMS_Value_Processing();
Data_Service_Gear_Processing();
Data_Ambient_Temperature_Processing();
//Display_Schedule_Service();/*显示函数入口*/
//Menu_Display_Service();
//External_Influence_ENERGY_RECOVERY_LEVEL_Select();
//LongTimeNoKey_Operation();
//Menu_Get_Battery_Sts_Exist();
// Display_Schedule_Service();/*显示函数入口*/
// Menu_Display_Service();
// External_Influence_ENERGY_RECOVERY_LEVEL_Select();
// LongTimeNoKey_Operation();
// Menu_Get_Battery_Sts_Exist();
Popups_Management_Service();
Popup_Scheduling_Service();
/*综合油耗信息*/
......@@ -239,29 +227,27 @@ void Sys_Run_Mode_100ms_Tasks(void)
Data_FuelCounsumpThisTime();
/*加油后行车信息*/
Data_Info_Last_Refueling();
}
/*============================================================================*/
/*******************************************************************************
* *
* 系统休眠模式(SYS_MODE_SLEEP)任务列表 *
* *
*******************************************************************************/
* *
* 系统休眠模式(SYS_MODE_SLEEP)任务列表 *
* *
*******************************************************************************/
/*==============================================================================
休眠模式下执行的后台任务
------------------------------------------------------------------------------*/
void Sys_Sleep_Mode_Tasks(void)
{
}
/*============================================================================*/
/*******************************************************************************
* *
* 精确的50us计时任务列表 *
* *
*******************************************************************************/
* *
* 精确的50us计时任务列表 *
* *
*******************************************************************************/
/*==============================================================================
精确的50us计时任务 禁止添加修改列表中的任务
------------------------------------------------------------------------------*/
......@@ -272,7 +258,7 @@ void Sys_Exact_50us_Tasks(void)
COM_NM_Process();
COM_TX_Process();
DoCAN_Timer_Update(50);
//TimerB_Fre_Timeout(50);
// TimerB_Fre_Timeout(50);
Cal_Veh_Cycle(SPEED_SIGNAL_PWM_IN); /*车速输入,非捕获方式 20211018*/
PerCounter++;
if (PerCounter >= 20 * 5)
......@@ -285,10 +271,10 @@ void Sys_Exact_50us_Tasks(void)
/*============================================================================*/
/*******************************************************************************
* *
* 精确的100ms计时任务列表 *
* *
*******************************************************************************/
* *
* 精确的100ms计时任务列表 *
* *
*******************************************************************************/
/*==============================================================================
精确的100ms计时任务 禁止添加修改列表中的任务
------------------------------------------------------------------------------*/
......@@ -300,8 +286,7 @@ void Sys_Exact_100ms_Tasks(void)
}
/*============================================================================*/
void APP_Startup_Init (uint8_t startMode)
void APP_Startup_Init(uint8_t startMode)
{
Power_Management_Init(startMode);
}
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