Commit 8cbb3659 authored by zhengyuan.bai's avatar zhengyuan.bai

🐞 fix: 完善段码显示

parent 7c8fb4d6
...@@ -59,7 +59,7 @@ void Gauge_Cutterhead_Gear_Display(void) ...@@ -59,7 +59,7 @@ void Gauge_Cutterhead_Gear_Display(void)
{ {
uint8_t CutterheadValue = Get_Gear_Cutterhead_Value(); uint8_t CutterheadValue = Get_Gear_Cutterhead_Value();
uint8_t CutterheadValid = Get_Gear_Cutterhead_Valid(); uint8_t CutterheadValid = Get_Gear_Cutterhead_Valid();
#if (PART_NUMBER == RMR42E_60)
if (CutterheadValid == 2U) if (CutterheadValid == 2U)
{ {
if (FLASH_SYNC_1Hz) if (FLASH_SYNC_1Hz)
...@@ -75,6 +75,9 @@ void Gauge_Cutterhead_Gear_Display(void) ...@@ -75,6 +75,9 @@ void Gauge_Cutterhead_Gear_Display(void)
{ {
SEG_SET_Cutterhead(CutterheadValid, CutterheadValue, 0); SEG_SET_Cutterhead(CutterheadValid, CutterheadValue, 0);
} }
#else
SEG_SET_Cutterhead(CutterheadValid, CutterheadValue, 0);
#endif
} }
void Gauge_Gears_Display(void) void Gauge_Gears_Display(void)
...@@ -135,6 +138,20 @@ void Gauge_Frame_Display(void) ...@@ -135,6 +138,20 @@ void Gauge_Frame_Display(void)
} }
} }
void Gauge_flue_Display(void)
{
uint8_t u8fuelValid = Get_FuelStatus_Valid();
uint8_t u8fuelValue = Get_FuelSeg_Display();
SEG_SET_FuelDial(u8fuelValid, u8fuelValue);
}
void Gauge_faultcode_Display(void)
{
uint8_t u8faucodeValid = Get_FaultCode_Valid();
uint8_t u8faucodelValue = Get_FaultCode_Value();
SEG_SET_Fault_Code(u8faucodeValid, u8faucodelValue);
}
void Clear_Bu98(void) void Clear_Bu98(void)
{ {
uint8_t i = 0; uint8_t i = 0;
...@@ -224,6 +241,12 @@ void Gauge_CAN_setup_Service(void) ...@@ -224,6 +241,12 @@ void Gauge_CAN_setup_Service(void)
Gauge_Clock_Display(); Gauge_Clock_Display();
Gauge_Clock_All_Display(); Gauge_Clock_All_Display();
Gauge_EleDial_AllSOC_Display(); Gauge_EleDial_AllSOC_Display();
if (PART_NUMBER == G54_A01)
{
Gauge_flue_Display();
Gauge_faultcode_Display();
}
// SEG_SET_GEAR(1, 1); // SEG_SET_GEAR(1, 1);
// SEG_SET_Cutterhead(1, 2); // SEG_SET_Cutterhead(1, 2);
Gauge_Frame_Display(); Gauge_Frame_Display();
......
...@@ -51,6 +51,8 @@ void Gauge_EleDial_AllSOC_Display(void); ...@@ -51,6 +51,8 @@ void Gauge_EleDial_AllSOC_Display(void);
void Gauge_Cutterhead_Gear_Display(void); void Gauge_Cutterhead_Gear_Display(void);
void Gauge_Gears_Display(void); void Gauge_Gears_Display(void);
void Gauge_Service(void); void Gauge_Service(void);
void Gauge_flue_Display(void);
void Gauge_faultcode_Display(void);
void Gauge_CAN_setup_Service(void); void Gauge_CAN_setup_Service(void);
void Checkself_LED_Display(void); void Checkself_LED_Display(void);
......
...@@ -7,8 +7,8 @@ ...@@ -7,8 +7,8 @@
#define Bit_Is_Set(p, b) ((p) & (1u << (b))) #define Bit_Is_Set(p, b) ((p) & (1u << (b)))
#define Bit_Is_Clr(p, b) (!((p) & (1u << (b)))) #define Bit_Is_Clr(p, b) (!((p) & (1u << (b))))
/*数字显示数组*/ /*0, 1 2 3 4 5 6 7 8 9 */ /*数字显示数组*/ /*0, 1 2 3 4 5 6 7 8 9 null - P A b C d E F*/
const uint8_t SEG_DISPLAY_NUMBER0[] = {0x3Fu, 0x06u, 0x5Bu, 0x4Fu, 0x66u, 0x6Du, 0x7Du, 0x07u, 0x7Fu, 0x6Fu}; const uint8_t SEG_DISPLAY_NUMBER0[] = {0x3Fu, 0x06u, 0x5Bu, 0x4Fu, 0x66u, 0x6Du, 0x7Du, 0x07u, 0x7Fu, 0x6Fu, 0x00, 0x40, 0x73, 0x77, 0x7C, 0x39, 0x5E, 0x79, 0x71};
const uint8_t SEG_UNDISPLAY_NUMBER0[] = {0x00u, 0x06u, 0x5Bu, 0x4Fu, 0x66u, 0x6Du, 0x7Du, 0x07u, 0x7Fu, 0x6Fu}; const uint8_t SEG_UNDISPLAY_NUMBER0[] = {0x00u, 0x06u, 0x5Bu, 0x4Fu, 0x66u, 0x6Du, 0x7Du, 0x07u, 0x7Fu, 0x6Fu};
uint8_t SOC_charge_seg_Flag = 0; uint8_t SOC_charge_seg_Flag = 0;
uint8_t checkself_seg_Flag = 0; uint8_t checkself_seg_Flag = 0;
...@@ -211,6 +211,7 @@ _Fun_Res SEG_SET_Cutterhead(uint8_t m_Flag, uint8_t LED_NUM, uint8_t checkself) ...@@ -211,6 +211,7 @@ _Fun_Res SEG_SET_Cutterhead(uint8_t m_Flag, uint8_t LED_NUM, uint8_t checkself)
} }
else else
{ {
#if (PART_NUMBER == RMR42E_60)
IC1_SEG118 = IC_SEG_ON; IC1_SEG118 = IC_SEG_ON;
IC1_SEG073 = IC_SEG_ON; IC1_SEG073 = IC_SEG_ON;
IC1_SEG074 = IC_SEG_ON; IC1_SEG074 = IC_SEG_ON;
...@@ -261,6 +262,61 @@ _Fun_Res SEG_SET_Cutterhead(uint8_t m_Flag, uint8_t LED_NUM, uint8_t checkself) ...@@ -261,6 +262,61 @@ _Fun_Res SEG_SET_Cutterhead(uint8_t m_Flag, uint8_t LED_NUM, uint8_t checkself)
IC1_SEG076 = IC_SEG_OFF; IC1_SEG076 = IC_SEG_OFF;
IC1_SEG077 = IC_SEG_OFF; IC1_SEG077 = IC_SEG_OFF;
} }
#else
IC1_SEG118 = IC_SEG_ON;
IC1_SEG073 = IC_SEG_ON;
IC1_SEG074 = IC_SEG_ON;
IC1_SEG079 = IC_SEG_ON;
IC1_SEG083 = IC_SEG_ON;
IC1_SEG116 = IC_SEG_ON;
if (LED_NUM == Gear_H)
{
IC1_SEG076 = IC_SEG_ON;
IC1_SEG077 = IC_SEG_ON;
IC1_SEG078 = IC_SEG_ON;
IC1_SEG081 = IC_SEG_ON;
IC1_SEG082 = IC_SEG_ON;
IC1_SEG117 = IC_SEG_ON;
IC1_SEG075 = IC_SEG_OFF;
IC1_SEG080 = IC_SEG_OFF;
}
else if (LED_NUM == Gear_L)
{
IC1_SEG076 = IC_SEG_ON;
IC1_SEG078 = IC_SEG_ON;
IC1_SEG080 = IC_SEG_ON;
IC1_SEG117 = IC_SEG_ON;
IC1_SEG077 = IC_SEG_OFF;
IC1_SEG081 = IC_SEG_OFF;
IC1_SEG082 = IC_SEG_OFF;
IC1_SEG075 = IC_SEG_OFF;
}
else if (LED_NUM == 0)
{
IC1_SEG117 = IC_SEG_ON;
IC1_SEG076 = IC_SEG_OFF;
IC1_SEG078 = IC_SEG_OFF;
IC1_SEG080 = IC_SEG_OFF;
IC1_SEG077 = IC_SEG_OFF;
IC1_SEG081 = IC_SEG_OFF;
IC1_SEG082 = IC_SEG_OFF;
IC1_SEG075 = IC_SEG_OFF;
}
else
{
IC1_SEG117 = IC_SEG_OFF;
IC1_SEG075 = IC_SEG_OFF;
IC1_SEG082 = IC_SEG_OFF;
IC1_SEG081 = IC_SEG_OFF;
IC1_SEG080 = IC_SEG_OFF;
IC1_SEG078 = IC_SEG_OFF;
IC1_SEG076 = IC_SEG_OFF;
IC1_SEG077 = IC_SEG_OFF;
}
#endif
} }
} }
else else
...@@ -441,6 +497,38 @@ _Fun_Res SEG_SET_GEAR(uint8_t m_Gear_Flag, uint8_t m_Gear, uint8_t checkself) ...@@ -441,6 +497,38 @@ _Fun_Res SEG_SET_GEAR(uint8_t m_Gear_Flag, uint8_t m_Gear, uint8_t checkself)
IC2_SEG102 = IC_SEG_ON; IC2_SEG102 = IC_SEG_ON;
IC2_SEG143 = IC_SEG_ON; IC2_SEG143 = IC_SEG_ON;
} }
else if (m_Gear == Gear_H)
{
IC2_SEG100 = IC_SEG_ON;
IC2_SEG097 = IC_SEG_ON;
IC2_SEG101 = IC_SEG_ON;
IC2_SEG146 = IC_SEG_ON;
IC2_SEG099 = IC_SEG_ON;
IC2_SEG147 = IC_SEG_ON;
IC2_SEG144 = IC_SEG_ON;
IC2_SEG148 = IC_SEG_OFF;
IC2_SEG096 = IC_SEG_OFF;
IC2_SEG142 = IC_SEG_OFF;
IC2_SEG143 = IC_SEG_OFF;
IC2_SEG102 = IC_SEG_OFF;
}
else if (m_Gear == Gear_L)
{
IC2_SEG100 = IC_SEG_ON;
IC2_SEG097 = IC_SEG_ON;
IC2_SEG102 = IC_SEG_ON;
IC2_SEG143 = IC_SEG_ON;
IC2_SEG148 = IC_SEG_OFF;
IC2_SEG147 = IC_SEG_OFF;
IC2_SEG146 = IC_SEG_OFF;
IC2_SEG099 = IC_SEG_OFF;
IC2_SEG101 = IC_SEG_OFF;
IC2_SEG096 = IC_SEG_OFF;
IC2_SEG142 = IC_SEG_OFF;
IC2_SEG144 = IC_SEG_OFF;
}
else if (m_Gear == Gear_OFF) else if (m_Gear == Gear_OFF)
{ {
IC2_SEG101 = IC_SEG_OFF; IC2_SEG101 = IC_SEG_OFF;
...@@ -457,6 +545,10 @@ _Fun_Res SEG_SET_GEAR(uint8_t m_Gear_Flag, uint8_t m_Gear, uint8_t checkself) ...@@ -457,6 +545,10 @@ _Fun_Res SEG_SET_GEAR(uint8_t m_Gear_Flag, uint8_t m_Gear, uint8_t checkself)
IC2_SEG096 = IC_SEG_OFF; IC2_SEG096 = IC_SEG_OFF;
IC2_SEG142 = IC_SEG_OFF; IC2_SEG142 = IC_SEG_OFF;
} }
else
{
;
}
} }
Res = EX_OK; Res = EX_OK;
} }
...@@ -487,72 +579,72 @@ _Fun_Res SEG_SET_GEAR(uint8_t m_Gear_Flag, uint8_t m_Gear, uint8_t checkself) ...@@ -487,72 +579,72 @@ _Fun_Res SEG_SET_GEAR(uint8_t m_Gear_Flag, uint8_t m_Gear, uint8_t checkself)
} }
return Res; return Res;
} }
// /**@brief 燃油表盘显示函数 /**@brief 燃油表盘显示函数
// * @param[in] m_Flag 段与数字是否显示 -1 显示 -0 不显示 * @param[in] m_Flag 段与数字是否显示 -1 显示 -0 不显示
// * @param[in] m_SEG 燃油表盘段数0<=m_SEG<=5 * @param[in] m_SEG 燃油表盘段数0<=m_SEG<=5
// * @return 函数执行结果 * @return 函数执行结果
// * - EX_OK 上报成功 * - EX_OK 上报成功
// * - EX_ERR 上报失败 * - EX_ERR 上报失败
// */ */
// _Fun_Res SEG_SET_FuelDial(uint8_t m_Flag, uint8_t m_SEG) _Fun_Res SEG_SET_FuelDial(uint8_t m_Flag, uint8_t m_SEG)
// { {
// _Fun_Res m_Res; _Fun_Res m_Res;
// // uint8_t Num; // uint8_t Num;
// uint8_t m8; uint8_t m8;
// if (m_Flag == 1u) if (m_Flag == 1u)
// { {
// IC1_SEG052 = IC_SEG_GREY; IC1_SEG052 = IC_SEG_GREY;
// IC1_SEG051 = IC_SEG_GREY; IC1_SEG051 = IC_SEG_GREY;
// IC1_SEG050 = IC_SEG_GREY; IC1_SEG050 = IC_SEG_GREY;
// IC1_SEG049 = IC_SEG_GREY; IC1_SEG049 = IC_SEG_GREY;
// IC1_SEG048 = IC_SEG_GREY; IC1_SEG048 = IC_SEG_GREY;
// IC1_SEG047 = IC_SEG_GREY; IC1_SEG047 = IC_SEG_GREY;
// IC1_SEG046 = IC_SEG_GREY; IC1_SEG046 = IC_SEG_GREY;
// IC1_SEG045 = IC_SEG_GREY; IC1_SEG045 = IC_SEG_GREY;
// IC1_SEG053 = IC_SEG_ON; IC1_SEG053 = IC_SEG_ON;
// IC1_SEG105 = IC_SEG_ON; IC1_SEG105 = IC_SEG_ON;
// IC1_SEG044 = IC_SEG_ON; IC1_SEG044 = IC_SEG_ON;
// switch (m_SEG) switch (m_SEG)
// { {
// case 8u: case 8u:
// IC1_SEG045 = IC_SEG_ON; IC1_SEG045 = IC_SEG_ON;
// case 7u: case 7u:
// IC1_SEG046 = IC_SEG_ON; IC1_SEG046 = IC_SEG_ON;
// case 6u: case 6u:
// IC1_SEG047 = IC_SEG_ON; IC1_SEG047 = IC_SEG_ON;
// case 5u: case 5u:
// IC1_SEG048 = IC_SEG_ON; IC1_SEG048 = IC_SEG_ON;
// case 4u: case 4u:
// IC1_SEG049 = IC_SEG_ON; IC1_SEG049 = IC_SEG_ON;
// case 3u: case 3u:
// IC1_SEG050 = IC_SEG_ON; IC1_SEG050 = IC_SEG_ON;
// case 2u: case 2u:
// IC1_SEG051 = IC_SEG_ON; IC1_SEG051 = IC_SEG_ON;
// case 1u: case 1u:
// IC1_SEG052 = IC_SEG_ON; IC1_SEG052 = IC_SEG_ON;
// case 0u: case 0u:
// break; break;
// default: default:
// break; break;
// } }
// } }
// else else
// { {
// IC2_SEG052 = IC_SEG_OFF; IC2_SEG052 = IC_SEG_OFF;
// IC2_SEG051 = IC_SEG_OFF; IC2_SEG051 = IC_SEG_OFF;
// IC2_SEG050 = IC_SEG_OFF; IC2_SEG050 = IC_SEG_OFF;
// IC2_SEG049 = IC_SEG_OFF; IC2_SEG049 = IC_SEG_OFF;
// IC2_SEG048 = IC_SEG_OFF; IC2_SEG048 = IC_SEG_OFF;
// IC2_SEG047 = IC_SEG_OFF; IC2_SEG047 = IC_SEG_OFF;
// IC2_SEG046 = IC_SEG_OFF; IC2_SEG046 = IC_SEG_OFF;
// IC2_SEG045 = IC_SEG_OFF; IC2_SEG045 = IC_SEG_OFF;
// } }
// m_Res = EX_OK; m_Res = EX_OK;
// return m_Res; return m_Res;
// } }
/**@brief 电量表盘1SOC显示函数 /**@brief 电量表盘1SOC显示函数
* @param[in] m_Flag 段与数字是否显示 -1 显示 -0 不显示 * @param[in] m_Flag 段与数字是否显示 -1 显示 -0 不显示
...@@ -920,8 +1012,8 @@ _Fun_Res SEG_SET_EleDial_AllSOC(uint8_t m_Flag, uint16_t m_NUM) ...@@ -920,8 +1012,8 @@ _Fun_Res SEG_SET_EleDial_AllSOC(uint8_t m_Flag, uint16_t m_NUM)
return m_Res; return m_Res;
} }
/**@brief 故障码显示 /**@brief 故障码显示
* @param[in] m_Flag 车速是否显示 -1 显示 -0 不显示 * @param[in] m_Flag 故障码是否显示 -1 显示 -0 不显示
* @param[in] m_NUM 车速数据 0<=m_NUM<=299 * @param[in] m_NUM 故障码数据 0<=m_NUM<=299
* @return 函数执行结果 * @return 函数执行结果
* - EX_OK 上报成功 * - EX_OK 上报成功
* - EX_ERR 上报失败 * - EX_ERR 上报失败
...@@ -939,7 +1031,14 @@ _Fun_Res SEG_SET_Fault_Code(uint8_t m_Flag, uint16_t m_NUM) ...@@ -939,7 +1031,14 @@ _Fun_Res SEG_SET_Fault_Code(uint8_t m_Flag, uint16_t m_NUM)
{ {
if (m_Flag == 1u) if (m_Flag == 1u)
{ {
IC1_SEG087 = IC_SEG_ON; if (FLASH_SYNC_1Hz)
{
IC1_SEG087 = IC_SEG_ON;
}
else
{
IC1_SEG087 = IC_SEG_GREY;
}
IC1_SEG094 = IC_SEG_ON; IC1_SEG094 = IC_SEG_ON;
IC1_SEG093 = IC_SEG_ON; IC1_SEG093 = IC_SEG_ON;
IC1_SEG091 = IC_SEG_ON; IC1_SEG091 = IC_SEG_ON;
...@@ -1245,6 +1344,9 @@ _Fun_Res SEG_SET_Fault_Code(uint8_t m_Flag, uint16_t m_NUM) ...@@ -1245,6 +1344,9 @@ _Fun_Res SEG_SET_Fault_Code(uint8_t m_Flag, uint16_t m_NUM)
IC1_SEG108 = IC_SEG_OFF; IC1_SEG108 = IC_SEG_OFF;
IC1_SEG109 = IC_SEG_OFF; IC1_SEG109 = IC_SEG_OFF;
IC1_SEG110 = IC_SEG_OFF; IC1_SEG110 = IC_SEG_OFF;
IC1_SEG111 = IC_SEG_OFF;
IC1_SEG112 = IC_SEG_OFF;
IC1_SEG113 = IC_SEG_OFF;
} }
m_Res = EX_OK; m_Res = EX_OK;
...@@ -2583,8 +2685,14 @@ void Check_SEG_Display(void) ...@@ -2583,8 +2685,14 @@ void Check_SEG_Display(void)
Checkself_num = 9; Checkself_num = 9;
} }
uint32_t allhour = Checkself_num * 11111; uint32_t allhour = Checkself_num * 11111;
// Fuel = Checkself_SEG_step / 5u; if (PART_NUMBER == G54_A01)
// SEG_SET_FuelDial(1, Fuel); {
uint8_t Fuel = 0;
uint32_t fau_code = Checkself_num * 1111;
Fuel = Checkself_SEG_step / 5u;
SEG_SET_FuelDial(1, Fuel);
SEG_SET_Fault_Code(1, fau_code);
}
uint32_t EleDial_2SOC = ((check_SEG_step * 10) / 48); uint32_t EleDial_2SOC = ((check_SEG_step * 10) / 48);
SEG_SET_EleDial_2SOC(1, EleDial_2SOC); SEG_SET_EleDial_2SOC(1, EleDial_2SOC);
...@@ -2663,8 +2771,14 @@ void Checkself_SEG_Display(void) ...@@ -2663,8 +2771,14 @@ void Checkself_SEG_Display(void)
Checkself_num = 9; Checkself_num = 9;
} }
uint32_t allhour = Checkself_num * 11111; uint32_t allhour = Checkself_num * 11111;
// Fuel = Checkself_SEG_step / 5u; if (PART_NUMBER == G54_A01)
// SEG_SET_FuelDial(1, Fuel); {
uint8_t Fuel = 0;
uint32_t fau_code = Checkself_num * 1111;
Fuel = Checkself_SEG_step / 5u;
SEG_SET_FuelDial(1, Fuel);
SEG_SET_Fault_Code(1, fau_code);
}
uint32_t EleDial_2SOC = ((Checkself_SEG_step * 10) / 48); uint32_t EleDial_2SOC = ((Checkself_SEG_step * 10) / 48);
SEG_SET_EleDial_2SOC(1, EleDial_2SOC); SEG_SET_EleDial_2SOC(1, EleDial_2SOC);
......
...@@ -63,8 +63,8 @@ _Fun_Res SEG_SET_EleDial_2SOC(uint8_t m_Flag,uint8_t m_SEG); ...@@ -63,8 +63,8 @@ _Fun_Res SEG_SET_EleDial_2SOC(uint8_t m_Flag,uint8_t m_SEG);
/**@brief 电量表盘AllSOC显示函数*/ /**@brief 电量表盘AllSOC显示函数*/
_Fun_Res SEG_SET_EleDial_AllSOC(uint8_t m_Flag,uint16_t m_NUM); _Fun_Res SEG_SET_EleDial_AllSOC(uint8_t m_Flag,uint16_t m_NUM);
// /**@brief 燃油表盘显示函数*/ /**@brief 燃油表盘显示函数*/
// _Fun_Res SEG_SET_FuelDial(uint8_t m_Flag,uint8_t m_SEG); _Fun_Res SEG_SET_FuelDial(uint8_t m_Flag,uint8_t m_SEG);
/**@brief 转速表盘显示函数*/ /**@brief 转速表盘显示函数*/
//_Fun_Res SEG_SET_EspeedDial(uint8_t m_Flag, uint8_t m_SEG, uint16_t m_NUM); //_Fun_Res SEG_SET_EspeedDial(uint8_t m_Flag, uint8_t m_SEG, uint16_t m_NUM);
......
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