Commit 7c76aa5c authored by 郑萍's avatar 郑萍

feat:增加蜂鸣器和调整自检时间

parent 11c9b80e
......@@ -15,7 +15,7 @@ void Can_Set_Buff_3A2(canlib_uint8_t CopyData[])
p3A2->Sig.ICU_POWERStateFB = Get_CAN_Power_State();
p3A2->Sig.ICU_KL15State = (Get_CAN_Power_State() != KEY_OFF);
p3A2->Sig.ICU_LEDLightState = Get_LINE_IN_BigLED();
p3A2->Sig.ICU_BuzzerState = 1;//蜂鸣器
p3A2->Sig.ICU_BuzzerState = BUZZER_ON;//蜂鸣器
p3A2->Sig.Res0 = 0;
p3A2->Sig.ICU_IndicatorLightState = Get_Interact_Light_State();
p3A2->Sig.ICU_IndicatorLightPowerState = 1;
......
......@@ -42,7 +42,7 @@ void Gpio_Init(_GpioUser_Enum InitMode)
RTE_GPIO_Config(RTE_GPIO_PORT03_PIN01, GpioOut_Low); //SDB_LED_DRIVER
RTE_GPIO_Config(RTE_GPIO_PORT04_PIN00, GpioOut_Low); //SEDIO-编程
RTE_GPIO_Config(RTE_GPIO_PORT04_PIN01, GpioOut_High); //OUT_EN_1
RTE_GPIO_Config(RTE_GPIO_PORT04_PIN01, GpioOut_Low); //OUT_EN_1
RTE_GPIO_Config(RTE_GPIO_PORT04_PIN02, RTE_GPIO_DIR_IN); //OUT_ST
RTE_GPIO_Config(RTE_GPIO_PORT04_PIN03, GpioOut_High); //OUT_EN
......
......@@ -5,6 +5,7 @@
uint16_t poweroff_time = 0;
uint8_t SOC_Count_Time = 0;
uint8_t BUZZER_ON = 0;
// void Gauge_Gear_Display(void)
// {
......@@ -15,7 +16,7 @@ uint8_t SOC_Count_Time = 0;
// }
// else
// {
// }
// }
......@@ -65,7 +66,7 @@ void Gauge_Power_SOC_CHAGING_Display(void)
if (++SOC_Count_Time > 10)
{
SOC_Count_Time = 0;
SEG_SET_EleDial_1SOC(1, SOC1_Count);
SOC1_Count++;
if (SOC1_Count > SOC_1_Count)
......@@ -80,7 +81,7 @@ void Gauge_Power_SOC_CHAGING_Display(void)
if (++SOC_Count_Time > 10)
{
SOC_Count_Time = 0;
SEG_SET_EleDial_2SOC(1, SOC2_Count);
SOC2_Count++;
if (SOC2_Count > SOC_2_Count)
......@@ -88,14 +89,14 @@ void Gauge_Power_SOC_CHAGING_Display(void)
SOC2_Count = 0;
}
}
SEG_SET_EleDial_1SOC(1,SOC_1_Count);
SEG_SET_EleDial_1SOC(1, SOC_1_Count);
}
else if (MBMS_StatBattWorkState == 0x7) // 主副电池
{
if (++SOC_Count_Time > 10)
{
SOC_Count_Time = 0;
SEG_SET_EleDial_1SOC(1, SOC1_Count);
SEG_SET_EleDial_2SOC(1, SOC2_Count);
SOC1_Count++;
......@@ -260,95 +261,170 @@ void Clear_Bu98(void)
void Gauge_Service(void)
{
uint8_t i = 0;
Gauge_Frame_Display();
if (0)
if (Common_Get_IG_Sts() == COMMON_POWER_ON && ADC_Read_Signal(ADC_CH_KL30_VOLTAGE) <= 16000 && ADC_Read_Signal(ADC_CH_KL30_VOLTAGE) >= 9000)
{
if (Common_Get_IG_Sts() == COMMON_POWER_ON)
if (Get_CAN_Power_State() != PKEY_ON)
{
Check_SEG_Display();
}
else
{
Clear_Bu98();
BUZZER_Init();
if (Common_GetIgnOnTime() > 1500)
{
SOC_charge_seg_Flag = 0;
Checkself_Init();
Gauge_CAN_setup_Service();
}
else
{
checkself_seg_Flag = 1;
Checkself_LED_Display();
// Checkself_SEG_Display();
}
}
}
else
{
if (Common_Get_IG_Sts() == COMMON_POWER_ON && ADC_Read_Signal(ADC_CH_KL30_VOLTAGE) <= 16000 && ADC_Read_Signal(ADC_CH_KL30_VOLTAGE) >= 9000)
else if (Get_CAN_Power_State() == PKEY_ON)
{
if (Get_CAN_Power_State() != PKEY_ON)
if (Buzzer_time == 0)
{
if (Common_GetIgnOnTime() >= 1500)
Clear_Bu98();
for (i = 0; i < LampCh0_MAX; i++)
{
SOC_charge_seg_Flag = 0;
Checkself_Init();
if (Get_CAN_Power_State() == KEY_ACC)
{
interact_PWM_Low_Duty = 0;
Gauge_Clock_Display();
Gauge_Clock_All_Display();
Gauge_EleDial_AllSOC_Display();
SEG_SET_GEAR(1, 1);
SEG_SET_Cutterhead(1, 2);
Gauge_Frame_Display();
Gauge_Power_SOC_pull_Display();
}
else if (Get_CAN_Power_State() == READY)
{
interact_PWM_Low_Duty = 30;
Gauge_Clock_Display();
Gauge_Clock_All_Display();
Gauge_EleDial_AllSOC_Display();
SEG_SET_GEAR(1, 1);
SEG_SET_Cutterhead(1, 2);
Gauge_Frame_Display();
Gauge_Power_SOC_pull_Display();
}
else if (Get_CAN_Power_State() == CHRGING)
{
SOC_charge_seg_Flag = 1;
if (poweroff_time < 3600)
{
Gauge_Power_SOC_CHAGING_Display();
if (poweroff_time == 0)
{
Gauge_Clock_Display();
Gauge_Clock_All_Display();
Gauge_EleDial_AllSOC_Display();
SEG_SET_GEAR(1, 1);
SEG_SET_Cutterhead(1, 2);
Gauge_Frame_Display();
}
}
else
{
}
}
LED_Driver_Channel_Set(LampChannel_0, i, LED_OFF);
}
// Gpio_Init(Gpio_Sleep_Init);
}
interact_PWM_Low_Duty = 50;
if (FLASH_SYNC_05Hz)
{
SEG_SET_GEAR(1, 0);
if (Buzzer_time <= 6000)
{
RTE_GPIO_Config(RTE_GPIO_PORT04_PIN01, GpioOut_High); // OUT_EN_1
BUZZER_ON = 1;
}
else
{
Checkself_SEG_Display();
RTE_GPIO_Config(RTE_GPIO_PORT04_PIN01, GpioOut_Low); // OUT_EN_1
BUZZER_ON = 0;
}
}
else
{
// Clear_Bu98();
// for (i = 0; i < LampCh0_MAX; i++)
// {
// LED_Driver_Channel_Set(LampChannel_0, i, LED_OFF);
// }
interact_PWM_Low_Duty = 50;
// 蜂鸣器
SEG_SET_GEAR(0, 0);
RTE_GPIO_Config(RTE_GPIO_PORT04_PIN01, GpioOut_Low); // OUT_EN_1
BUZZER_ON = 0;
}
if (Buzzer_time < 0xFFFF)
{
Buzzer_time++;
}
}
else
}
else
{
BUZZER_Init();
Clear_Bu98();
for (i = 0; i < LampCh0_MAX; i++)
{
LED_Driver_Channel_Set(LampChannel_0, i, LED_OFF);
}
}
}
void Gauge_CAN_setup_Service(void)
{
uint8_t state = Get_CAN_Power_State();
switch (state)
{
case KEY_ACC:
{
interact_PWM_Low_Duty = 0;
Gauge_Clock_Display();
Gauge_Clock_All_Display();
Gauge_EleDial_AllSOC_Display();
// SEG_SET_GEAR(1, 1);
// SEG_SET_Cutterhead(1, 2);
Gauge_Frame_Display();
Gauge_Power_SOC_pull_Display();
}
break;
case READY:
{
interact_PWM_Low_Duty = 30;
Gauge_Clock_Display();
Gauge_Clock_All_Display();
Gauge_EleDial_AllSOC_Display();
// SEG_SET_GEAR(1, 1);
// SEG_SET_Cutterhead(1, 2);
Gauge_Frame_Display();
Gauge_Power_SOC_pull_Display();
}
break;
case CHRGING:
{
SOC_charge_seg_Flag = 1;
if (poweroff_time < 3600)
{
Clear_Bu98();
for (i = 0; i < LampCh0_MAX; i++)
Gauge_Power_SOC_CHAGING_Display();
if (poweroff_time == 0)
{
LED_Driver_Channel_Set(LampChannel_0, i, LED_OFF);
Gauge_Clock_Display();
Gauge_Clock_All_Display();
Gauge_EleDial_AllSOC_Display();
// SEG_SET_GEAR(1, 1);
// SEG_SET_Cutterhead(1, 2);
Gauge_Frame_Display();
}
}
else
{
SEG_SET_EleDial_AllSOC(0, 0);
SEG_SET_EleDial_1SOC(0, 0);
SEG_SET_EleDial_2SOC(0, 0);
}
}
break;
default:
break;
}
}
void Checkself_LED_Display(void)
{
LED_Driver_Channel_Set(LampChannel_0, LampCh0_00_Grass_Full_R, LED_ON);
// LED_Driver_Channel_Set(LampChannel_0, LampCh0_01_Power_Battery_Failure_R, LED_ON);
// LED_Driver_Channel_Set(LampChannel_0, LampCh0_02_System_Indicator_R, LED_ON);
LED_Driver_Channel_Set(LampChannel_0, LampCh0_03_P_GEAR_G, LED_ON);
LED_Driver_Channel_Set(LampChannel_0, LampCh0_04_GEAR_W, LED_ON);
LED_Driver_Channel_Set(LampChannel_0, LampCh0_08_Battery_Charging_W, LED_ON);
LED_Driver_Channel_Set(LampChannel_0, LampCh0_10_READY_G, LED_ON);
LED_Driver_Channel_Set(LampChannel_0, LampCh0_11_Key_Access_W, LED_ON);
LED_Driver_Channel_Set(LampChannel_0, LampCh0_12_Seat_Detection_W, LED_ON);
LED_Driver_Channel_Set(LampChannel_0, LampCh0_13_OVERLOAD_R, LED_ON);
LED_Driver_Channel_Set(LampChannel_0, LampCh0_14_Cutterhead_Switch_W, LED_ON);
LED_Driver_Channel_Set(LampChannel_0, LampCh0_15_Cutterhead_Gear_W, LED_ON);
// LED_Driver_Channel_Set(LampChannel_0, LampCh0_17_External_Discharge_W, LED_ON);
LED_Driver_Channel_Set(LampChannel_0, LampCh0_21_LED_Open_W, LED_ON);
LED_Driver_Channel_Set(LampChannel_0, LampCh0_31_Working_Hours_One_W, LED_ON);
LED_Driver_Channel_Set(LampChannel_0, LampCh0_32_Charging_Connection_R, LED_ON);
SEG_SET_LED_STS(SEG_LED_Recharge, 1);
// SEG_SET_LED_STS(SEG_LED_System_Light, 1);
SEG_SET_LED_STS(SEG_LED_Chloramine, 1);
SEG_SET_LED_STS(SEG_LED_Cutter_Overload, 1);
SEG_SET_LED_STS(SEG_LED_Seat_Detection, 1);
SEG_SET_LED_STS(SEG_LED_Key_Access, 1);
SEG_SET_LED_STS(SEG_LED_Ready, 1);
SEG_SET_LED_STS(SEG_LED_Cutter_Head_switch, 1);
// SEG_SET_LED_STS(SEG_LED_External_Discharge, 1);
SEG_SET_LED_STS(SEG_LED_Distance_Light, 1);
SEG_SET_LED_STS(SEG_LED_HHT_Charger, 1);
}
void BUZZER_Init(void)
{
Buzzer_time = 0;
BUZZER_ON = 0;
RTE_GPIO_Config(RTE_GPIO_PORT04_PIN01, GpioOut_Low); // OUT_EN_1
}
......@@ -36,6 +36,7 @@ typedef struct
#define BATTERY_SEG_MAP_MAX (sizeof(batterySegMap)/sizeof(BatterySegMap_st_t))
#define POWERON_SCAN_TIMER 3000ul
extern uint8_t BUZZER_ON;
void Gauge_Power_SOC_pull_Display(void);
// void Gauge_Power_2_SOC_Display(void);
......@@ -60,6 +61,9 @@ void Gauge_Service(void);
void Temp_Calc_Init(void);
void Temp_Calc_Send(void);
uint32_t Get_Temp_Calc(void);
void Gauge_CAN_setup_Service(void);
void Checkself_LED_Display(void);
void BUZZER_Init(void);
#endif
......@@ -10,7 +10,7 @@
const uint8_t SEG_DISPLAY_NUMBER0[] = {0x3Fu, 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 checkself_seg_Flag = 0;
/**@brief 边框线显示函数
* @param[in] m_Flag 是否显示 -1 显示 -0 不显示
* @return 函数执行结果
......@@ -1051,7 +1051,7 @@ _Fun_Res SEG_SET_Fault_Code(uint8_t m_Flag, uint16_t m_NUM)
IC1_SEG083 = IC_SEG_OFF;
IC1_SEG084 = IC_SEG_OFF;
IC1_SEG085 = IC_SEG_OFF;
IC1_SEG086 = IC_SEG_OFF;
// IC1_SEG086 = IC_SEG_OFF;
IC1_SEG087 = IC_SEG_OFF;
IC1_SEG088 = IC_SEG_OFF;
IC1_SEG089 = IC_SEG_OFF;
......@@ -2033,7 +2033,7 @@ _Fun_Res SEG_SET_Clock_ALL(uint8_t m_Flag, uint32_t m_NUM)
IC2_SEG077 = IC_SEG_ON;
Num = m_NUM / 10000u;
if (m_NUM > 10000)
if (m_NUM > 10000 || checkself_seg_Flag == 1)
{
m8 = SEG_DISPLAY_NUMBER0[Num];
}
......@@ -2100,7 +2100,7 @@ _Fun_Res SEG_SET_Clock_ALL(uint8_t m_Flag, uint32_t m_NUM)
}
/*千位*/
Num = (m_NUM / 1000u) % 10u;
if (m_NUM > 1000)
if (m_NUM > 1000 || checkself_seg_Flag == 1)
{
m8 = SEG_DISPLAY_NUMBER0[Num];
}
......@@ -2167,7 +2167,7 @@ _Fun_Res SEG_SET_Clock_ALL(uint8_t m_Flag, uint32_t m_NUM)
}
/*百位*/
Num = (m_NUM / 100u) % 10u;
if (m_NUM > 100)
if (m_NUM > 100 || checkself_seg_Flag == 1)
{
m8 = SEG_DISPLAY_NUMBER0[Num];
}
......@@ -2434,10 +2434,13 @@ _Fun_Res SEG_SET_Clock_ALL(uint8_t m_Flag, uint32_t m_NUM)
uint8_t Checkself_SEG_step = 0;
uint8_t Checkself_SEG_step_count = 0;
uint16_t Buzzer_time = 0;
void Checkself_Init(void)
{
Checkself_SEG_step = 0;
Checkself_SEG_step_count = 0;
checkself_seg_Flag = 0;
Buzzer_time = 0;
}
uint8_t soc_all = 0;
void Checkself_SEG_Display(void)
......@@ -2447,59 +2450,30 @@ void Checkself_SEG_Display(void)
uint16_t hour = 0;
uint16_t min = 0;
uint32_t ODO = 0;
soc_all = (Checkself_SEG_step / 3) * 11 + 100;
uint32_t allhour = (Checkself_SEG_step / 3) * 11111;
soc_all = (Checkself_SEG_step / 1) * 11 + 100;
uint32_t allhour = (Checkself_SEG_step / 1) * 11111;
// Fuel = Checkself_SEG_step / 5u;
// SEG_SET_FuelDial(1, Fuel);
SEG_SET_EleDial_AllSOC(1, soc_all);
SEG_SET_EleDial_2SOC(1, (Checkself_SEG_step / 3) + 1);
SEG_SET_EleDial_1SOC(1, (Checkself_SEG_step / 3) + 1);
SEG_SET_EleDial_2SOC(1, (Checkself_SEG_step / 1) + 1);
SEG_SET_EleDial_1SOC(1, (Checkself_SEG_step / 1) + 1);
SEG_SET_Clock_ALL(1, allhour);
hour = (Checkself_SEG_step / 3) * 11;
min = (Checkself_SEG_step / 3) * 11;
hour = (Checkself_SEG_step / 1) * 11;
min = (Checkself_SEG_step / 1) * 11;
SEG_SET_Clock(hour, min, 1, 1, 1);
LED_Driver_Channel_Set(LampChannel_0, LampCh0_00_Grass_Full_R, LED_ON);
// LED_Driver_Channel_Set(LampChannel_0, LampCh0_01_Power_Battery_Failure_R, LED_ON);
// LED_Driver_Channel_Set(LampChannel_0, LampCh0_02_System_Indicator_R, LED_ON);
LED_Driver_Channel_Set(LampChannel_0, LampCh0_03_P_GEAR_G, LED_ON);
LED_Driver_Channel_Set(LampChannel_0, LampCh0_04_GEAR_W, LED_ON);
LED_Driver_Channel_Set(LampChannel_0, LampCh0_08_Battery_Charging_W, LED_ON);
LED_Driver_Channel_Set(LampChannel_0, LampCh0_10_READY_G, LED_ON);
LED_Driver_Channel_Set(LampChannel_0, LampCh0_11_Key_Access_W, LED_ON);
LED_Driver_Channel_Set(LampChannel_0, LampCh0_12_Seat_Detection_W, LED_ON);
LED_Driver_Channel_Set(LampChannel_0, LampCh0_13_OVERLOAD_R, LED_ON);
LED_Driver_Channel_Set(LampChannel_0, LampCh0_14_Cutterhead_Switch_W, LED_ON);
LED_Driver_Channel_Set(LampChannel_0, LampCh0_15_Cutterhead_Gear_W, LED_ON);
// LED_Driver_Channel_Set(LampChannel_0, LampCh0_17_External_Discharge_W, LED_ON);
LED_Driver_Channel_Set(LampChannel_0, LampCh0_21_LED_Open_W, LED_ON);
LED_Driver_Channel_Set(LampChannel_0, LampCh0_31_Working_Hours_One_W, LED_ON);
LED_Driver_Channel_Set(LampChannel_0, LampCh0_32_Charging_Connection_R, LED_ON);
SEG_SET_LED_STS(SEG_LED_Recharge, 1);
// SEG_SET_LED_STS(SEG_LED_System_Light, 1);
SEG_SET_LED_STS(SEG_LED_Chloramine, 1);
SEG_SET_LED_STS(SEG_LED_Cutter_Overload, 1);
SEG_SET_LED_STS(SEG_LED_Seat_Detection, 1);
SEG_SET_LED_STS(SEG_LED_Key_Access, 1);
SEG_SET_LED_STS(SEG_LED_Ready, 1);
SEG_SET_LED_STS(SEG_LED_Cutter_Head_switch, 1);
// SEG_SET_LED_STS(SEG_LED_External_Discharge, 1);
SEG_SET_LED_STS(SEG_LED_Distance_Light, 1);
SEG_SET_LED_STS(SEG_LED_HHT_Charger, 1);
if (Checkself_SEG_step_count < 60)
if (Checkself_SEG_step_count < 20)
{
Checkself_SEG_step_count++;
}
else
{
Checkself_SEG_step_count = 60;
Checkself_SEG_step_count = 20;
}
if (Checkself_SEG_step_count < 30)
if (Checkself_SEG_step_count < 10)
{
Checkself_SEG_step++;
}
......@@ -2516,6 +2490,33 @@ void Checkself_SEG_Display(void)
Checkself_SEG_step--;
}
}
// if (Checkself_SEG_step_count < 60)
// {
// Checkself_SEG_step_count++;
// }
// else
// {
// Checkself_SEG_step_count = 60;
// }
// if (Checkself_SEG_step_count < 30)
// {
// Checkself_SEG_step++;
// }
// else
// {
// if (Checkself_SEG_step == 0)
// {
// Checkself_SEG_step = 0;
// SEG_SET_EleDial_2SOC(1, 0);
// SEG_SET_EleDial_1SOC(1, 0);
// }
// else
// {
// Checkself_SEG_step--;
// }
// }
}
void TYW_Check_Count(void)
......
......@@ -113,6 +113,10 @@ extern void Checkself_Init (void);
extern void Checkself_SEG_Display(void);
extern uint8_t SOC_charge_seg_Flag;
extern uint8_t Checkself_SEG_step;
extern uint8_t Checkself_SEG_step_count;
extern uint8_t checkself_seg_Flag;
extern uint16_t Buzzer_time;
......
......@@ -86,8 +86,6 @@ static void Power_Wakeup_Init(void)
Line_In_KL15_ON_Init();
TimerM_PWM_counter_Output_Init(TIMERM_COUNTER0, 400, 64000000);
TimerM_PWM_counter_Output_Init(TIMERM_COUNTER1, 400, 64000000);
TimerM_PWM_CH_Output_init(TIMERM_COUNTER0, TIMERM_CHB, ActiveLevel_High);
TimerM_PWM_CH_Output_init(TIMERM_COUNTER0, TIMERM_CHC, ActiveLevel_High);
TimerM_PWM_CH_Output_init(TIMERM_COUNTER0, TIMERM_CHD, ActiveLevel_High);
TimerM_PWM_CH_Output_init(TIMERM_COUNTER1, TIMERM_CHB, ActiveLevel_High);
Telltales_Init();
......@@ -118,8 +116,8 @@ static void Power_IG_ON_Init(void)
static void Power_Sleep_Init(void)
{
TimerM_PWM_counter_Output_Init(TIMERM_COUNTER0, 400, 0);
TimerM_PWM_counter_Output_Init(TIMERM_COUNTER1, 400, 0);
TimerM_PWM_counter_Output_Init(TIMERM_COUNTER0, 0, 0);
TimerM_PWM_counter_Output_Init(TIMERM_COUNTER1, 0, 0);
//TimerM_PWM_CH_Output_init(TIMERM_COUNTER0, TIMERM_CHB, ActiveLevel_High);
//TimerM_PWM_CH_Output_init(TIMERM_COUNTER0, TIMERM_CHC, ActiveLevel_High);
//TimerM_PWM_CH_Output_init(TIMERM_COUNTER0, TIMERM_CHD, ActiveLevel_High);
......
......@@ -23,8 +23,8 @@ MonitorStruct SysNM_KL15Monitor;
#define EXIT_LOW_N_RANGE 7000U
#define ENTER_LOW_Y_RANGE 9000U
#define EXIT_LOW_Y_RANGE 9500U
#define EXIT_HIGH_Y_RANGE 16000U
#define ENTER_HIGH_Y_RANGE 16500U
#define EXIT_HIGH_Y_RANGE 17500U
#define ENTER_HIGH_Y_RANGE 18000U
#define EXIT_HIGH_N_RANGE 18500U
#define ENTER_HIGH_N_RANGE 19000U
#define Top_Vol 0xffffu
......
......@@ -5,15 +5,15 @@
#include "wdt.h"
#define u16Base_Vol 0u
#define u16ENTER_LOW_N_RANGE 6500U
#define u16EXIT_LOW_N_RANGE 7000U
#define u16ENTER_LOW_N_RANGE 7000U
#define u16EXIT_LOW_N_RANGE 7500U
#define u16ENTER_LOW_Y_RANGE 9000U
#define u16EXIT_LOW_Y_RANGE 10000U
#define u16EXIT_HIGH_Y_RANGE 17500U
#define u16ENTER_HIGH_Y_RANGE 18000U
#define u16EXIT_HIGH_N_RANGE 18000U
#define u16ENTER_HIGH_N_RANGE 19000U
#define u16EXIT_HIGH_N_RANGE 17500U
#define u16ENTER_HIGH_N_RANGE 18000U
#define u16Top_Vol 0xffffu
......
......@@ -6,7 +6,7 @@
#include "Application.h"
#include "CAN_APP\CAN_CH0_CAN_Communication_Matrix.h"
#include "Components.h"
#define openLED_flag (Get_CAN_Power_State() != PKEY_ON && Get_CAN_Power_State() != KEY_OFF)
static Tellib_uint16_t LED_EFI_failure_Judgement(void);
static void LED_EFI_failure_Execution(Tellib_uint16_t led_status);
static Tellib_uint16_t LED_Fuel_Alarm_Judgement(void);
......@@ -225,7 +225,7 @@ static void LED_Oil_Pressure_Execution(Tellib_uint16_t led_status)
static Tellib_uint16_t LED_Grass_Full_Judgement(void)
{
Tellib_uint16_t LED_STATE = 0u;
if (Line_In_Get_Status(LINE_IN_GrassFull))
if (Line_In_Get_Status(LINE_IN_GrassFull) && openLED_flag)
{
LED_STATE = 1;
}
......@@ -254,7 +254,7 @@ static Tellib_uint16_t LED_OVERLOAD_Judgement(void)
Tellib_uint16_t LED_STATE = 0u;
Tellib_uint8_t Signal1 = Get_CAN_CH0_ID_38E_Sig_BMCU_Moto1_Locked_RotorFault();
Tellib_uint8_t Signal2 = Get_CAN_CH0_ID_38E_Sig_BMCU_Moto2_Locked_RotorFault();
if (Signal1 == 0x1 || Signal2 == 0x1)
if ((Signal1 == 0x1 || Signal2 == 0x1) && openLED_flag)
{
LED_STATE = 1;
}
......@@ -308,7 +308,7 @@ static Tellib_uint16_t LED_Seat_Detection_Judgement(void)
{
Tellib_uint16_t LED_STATE = 0u;
Tellib_uint8_t Signal1 = Get_CAN_CH0_ID_125_Sig_MMCU_SeatDetectState();
if (Signal1 == 0x1)
if (Signal1 == 0x1 && openLED_flag)
{
LED_STATE = 1;
}
......@@ -327,7 +327,7 @@ static void LED_Seat_Detection_Execution(Tellib_uint16_t led_status)
}
else
{
if(FLASH_SYNC_1Hz)
if(FLASH_SYNC_1Hz && openLED_flag)
{
LED_Driver_Channel_Set(LampChannel_0, LampCh0_12_Seat_Detection_W, LED_ON);
SEG_SET_LED_STS(SEG_LED_Seat_Detection,1);
......@@ -344,7 +344,7 @@ static Tellib_uint16_t LED_Key_Access_Judgement(void)
{
Tellib_uint16_t LED_STATE = 0u;
Tellib_uint8_t Signal1 = Get_CAN_CH0_ID_18202922_Sig_MBMS_TOTALSigAcc();
if (Signal1 == 0x1)
if (Signal1 == 0x1 && openLED_flag)
{
LED_STATE = 1;
}
......@@ -373,7 +373,7 @@ static Tellib_uint16_t LED_Battery_Charging_Judgement(void)
Tellib_uint8_t Signal1 = Get_CAN_CH0_ID_18202922_Sig_MBMS_TOTALSigAcc();
Tellib_uint8_t Signal2 = Get_CAN_CH0_ID_18202922_Sig_MBMS_TOTALSigCharge();
Tellib_uint8_t Signal3 = Get_CAN_Power_State();
if(ADC_Read_Signal(ADC_CH_KL30_VOLTAGE) >= 9000 && ADC_Read_Signal(ADC_CH_KL30_VOLTAGE) <= 16000)
if(ADC_Read_Signal(ADC_CH_KL30_VOLTAGE) >= 9000 && ADC_Read_Signal(ADC_CH_KL30_VOLTAGE) <= 16000 && openLED_flag)
{
if (Signal1 == 0x1 && Signal2 == 0X1)
{
......@@ -416,7 +416,7 @@ static void LED_Battery_Charging_Execution(Tellib_uint16_t led_status
}
else
{
LED_Driver_Channel_Set(LampChannel_0, SEG_LED_Recharge, LED_OFF);
LED_Driver_Channel_Set(LampChannel_0, LampCh0_08_Battery_Charging_W, LED_OFF);
SEG_SET_LED_STS(SEG_LED_Recharge,0);
}
}
......@@ -450,7 +450,7 @@ static Tellib_uint16_t LED_Cutterhead_Switch_Judgement(void)
{
Tellib_uint16_t LED_STATE = 0u;
Tellib_uint8_t Signal1 = Get_CAN_CH0_ID_157_Sig_BMCU_PTOSwicthState();
if (Signal1 == 0x1)
if (Signal1 == 0x1 && openLED_flag)
{
LED_STATE = 1;
}
......@@ -575,7 +575,7 @@ static void LED_Bluetooth_Connection_Execution(Tellib_uint16_t led_st
static Tellib_uint16_t LED_LED_Open_Judgement(void)
{
Tellib_uint16_t LED_STATE = 0u;
if (Line_In_Get_Status(LINE_IN_BigLED))
if (Line_In_Get_Status(LINE_IN_BigLED) && openLED_flag)
{
LED_STATE = 1;
}
......@@ -681,7 +681,7 @@ static Tellib_uint16_t LED_Gears_Judgement(void)
Tellib_uint16_t LED_STATE = 0u;
Tellib_uint8_t Signal1 = Get_CAN_CH0_ID_125_Sig_MMCU_TravelSpeedGear();
Tellib_uint8_t Signal2 = Get_CAN_CH0_ID_125_Sig_MMCU_ParkingGearState();
if(Signal2 != 0x1)
if(Signal2 != 0x1 && openLED_flag)
{
if (Signal1 == 0x1 || Signal1 == 0x2)
{
......@@ -712,7 +712,7 @@ static Tellib_uint16_t LED_Cutterhead_Gear_Judgement(void)
Tellib_uint16_t LED_STATE = 0u;
Tellib_uint8_t Signal1 = Get_CAN_CH0_ID_157_Sig_BMCU_BladeSpeedGear();
Tellib_uint8_t Signal2 = Get_CAN_CH0_ID_157_Sig_BMCU_ErrorGrage();
if (Signal2 == 0x0 )
if (Signal2 == 0x0 && openLED_flag)
{
if(Signal1 == 0x1 || Signal1 == 0x2 || Signal1 == 0x3)
{
......@@ -723,7 +723,7 @@ static Tellib_uint16_t LED_Cutterhead_Gear_Judgement(void)
LED_STATE = 0;
}
}
else if(Signal2 == 0x1 || Signal2 == 0x2 || Signal2 == 0x3 || Signal2 == 0x4)
else if((Signal2 == 0x1 || Signal2 == 0x2 || Signal2 == 0x3 || Signal2 == 0x4) && openLED_flag)
{
LED_STATE = 2;
}
......@@ -812,7 +812,7 @@ static Tellib_uint16_t LED_SystIndicator_R_Judgement(void)
Tellib_uint8_t Signal1 = Get_CAN_CH0_ID_125_Sig_MMCU_ErrorGrage();
Tellib_uint8_t Signal2 = Get_CAN_CH0_ID_134_Sig_SMCU_ErrorGrage();
Tellib_uint8_t Signal3 = System_Indicator_CANFlag;
if (Signal1 == 0x4 || Signal1 == 0x5 ||Signal2 == 0x4 || Signal2 == 0x5 || Signal3 == 1)
if ((Signal1 == 0x4 || Signal1 == 0x5 ||Signal2 == 0x4 || Signal2 == 0x5 || Signal3 == 1) && openLED_flag)
{
LED_STATE = 1;
......@@ -841,7 +841,7 @@ static Tellib_uint16_t LED_P_GEAR_G_Judgement(void)
Tellib_uint16_t LED_STATE = 0u;
Tellib_uint8_t Signal1 = Get_CAN_CH0_ID_125_Sig_MMCU_ParkingGearState();
Tellib_uint8_t Signal2 = Get_CAN_Power_State();
if ( Signal1 == 0x1 )
if ( Signal1 == 0x1 && openLED_flag)
{
LED_STATE = 1;
}
......@@ -865,17 +865,15 @@ static void LED_P_GEAR_G_Execution(Tellib_uint16_t led_status)
}
else if(led_status == 2u)
{
if(FLASH_SYNC_1Hz)
if(FLASH_SYNC_05Hz)
{
LED_Driver_Channel_Set(LampChannel_0, LampCh0_04_GEAR_W, LED_ON);
LED_Driver_Channel_Set(LampChannel_0, LampCh0_03_P_GEAR_G, LED_ON);
SEG_SET_GEAR(Gear_P, 1);
}
else
{
LED_Driver_Channel_Set(LampChannel_0, LampCh0_04_GEAR_W, LED_ON);
LED_Driver_Channel_Set(LampChannel_0, LampCh0_04_GEAR_W, LED_OFF);
LED_Driver_Channel_Set(LampChannel_0, LampCh0_03_P_GEAR_G, LED_OFF);
SEG_SET_GEAR(Gear_P, 0);
}
}
else
......@@ -915,7 +913,7 @@ static Tellib_uint16_t LED_Charging_Connection_R_Judgement(void)
{
Tellib_uint16_t LED_STATE = 0u;
Tellib_uint8_t Signal1 = Get_CAN_CH0_ID_18203220_Sig_MBMS_StatBattChargeState();
if (Signal1 == 0x1 || Signal1 == 0x2 ||Signal1 == 0x3)
if ((Signal1 == 0x1 || Signal1 == 0x2 ||Signal1 == 0x3) && openLED_flag)
{
LED_STATE = 1;
}
......@@ -955,7 +953,7 @@ static Tellib_uint16_t LED_Power_Battery_Failure_R_Judgement(void)
}
static void LED_Power_Battery_Failure_R_Execution(Tellib_uint16_t led_status)
{
if ( led_status == 1u )
if ( led_status == 1u && openLED_flag)
{
LED_Driver_Channel_Set(LampChannel_0, LampCh0_01_Power_Battery_Failure_R, LED_ON);
SEG_SET_LED_STS(SEG_LED_Power_Battery_Failure,1);
......
......@@ -4,14 +4,14 @@
#include "Components.h"
#include "RTE.h"
#include "UDS_ISO14229_Server.h"
void Sys_Pseudo_Real_Time_Tasks(void)
{
Power_Management_Service();
DoCAN_Communication_Service();
DoCAN_Communication_Service();
UDS_Server_Application_Service();
BU98R10_Update_Service();
LED_Driver_Service();
}
void Sys_2ms_Tasks(void)
......@@ -20,7 +20,7 @@ void Sys_2ms_Tasks(void)
Can_Write_Fun(&CAN_CH0_CanMsgTxOp, 2000u);
Sys_Status_Update_Service();
Analog_Signal_Conv_Service();
CanMSg_XMS_Analysis(&CAN_CH0_CanMsgOp,2u);
CanMSg_XMS_Analysis(&CAN_CH0_CanMsgOp, 2u);
}
void Sys_5ms_Tasks(void)
......@@ -28,7 +28,6 @@ void Sys_5ms_Tasks(void)
Flash_Sync_Signal_Generation_Service();
}
void Sys_10ms_Tasks(void)
{
Line_In_Debounce_Service(10u);
......@@ -56,7 +55,36 @@ void Sys_50ms_Tasks(void)
void Sys_75ms_Tasks(void)
{
if (checkself_seg_Flag == 1)
{
Checkself_SEG_Display();
// if (Checkself_SEG_step_count < 20)
// {
// Checkself_SEG_step_count++;
// }
// else
// {
// Checkself_SEG_step_count = 20;
// }
// if (Checkself_SEG_step_count < 10)
// {
// Checkself_SEG_step++;
// }
// else
// {
// if (Checkself_SEG_step == 0)
// {
// Checkself_SEG_step = 0;
// SEG_SET_EleDial_2SOC(1, 0);
// SEG_SET_EleDial_1SOC(1, 0);
// }
// else
// {
// Checkself_SEG_step--;
// }
// }
}
}
uint8_t u8LEDDriverCheckCount = 0U;
......@@ -65,25 +93,23 @@ void Sys_100ms_Tasks(void)
BackLight_Process();
Interact_Light_Process();
S3_ServerCNTT();
S3_ServerCNTT();
if (u8LEDDriverCheckCount >= 10U)
{
u8LEDDriverCheckCount = 0U;
LED_Driver_Work_Check();
LED_Driver_Service_Immediate();//注意顺序1
LED_Driver_Service_Immediate(); // 注意顺序1
}
else
{
u8LEDDriverCheckCount++;
}
}
}
/**
* @brief 50us中断服务 尽可能的减少中断使用
*
*
*/
void Sys_Exact_50us_Tasks(void)
{
......@@ -91,9 +117,9 @@ void Sys_Exact_50us_Tasks(void)
DoCAN_Timer_Update(50u);
GenDelay_Tick();
task_1ms++;
if ( task_1ms >=20U )
if (task_1ms >= 20U)
{
task_1ms =0U;
eeprom_1ms_timeCount( );
task_1ms = 0U;
eeprom_1ms_timeCount();
}
}
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