/************************************************************************** * \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" #include "Analog_Signals.h" #include "RTC.h" #include "Watchdog.h" #include "debugger.h" #include "Emulated_EEPROM.h" #include "r_ddb_api.h" #include "r_wm_api.h" #include "Graphic.h" #include "CAN_Communication_Matrix.h" #include "PowerManagement.h" #include "System_Monitor.h" #include "Common_Interface.h" #include "Services_ODO_User.h" #include "Data_CoolantTemperature.h" #include "Data_VehicleSpeed.h" #include "Data_EngineSpeed.h" #include "AC_TEMP.h" #include "Data_Time.h" #include "Data_Gear.h" #include "Data_Voltmeter.h" #include "Data_WET.h" #include "Data_AirPressure.h" #include "Data_Fuel_User.h" #include "Services_Mileage.h" //#include "Services_ODO.h" #include "Services_Mileage.h" //#include "Services_Trip.h" #include "Speed_PPK_Out.h" #include "Service_TPMS.h" #include "Service_OFF_Time.h" #include "Flash_synchronizer.h" #include "Line_in.h" #include "Telltales.h" #include "GUI.h" #include "Key.h" #include "Menu.h" #include "GUI_Interface.h" #include "Popup_Scheduler.h" #include "Popups.h" #include "GaugesInterface.h" #include "DisplaySch_user.h" #include "Sound_Scheduler.h" #include "Sound_Player.h" #include "BGLInterface.h" #include "BackLight_APP.h" #include "CD4051.h" #include "dr7f701441.dvf.h" #include "GPIO.h" #include "DoCAN_ISO15765.h" #include "UDS_ISO14229_Server.h" #include "Maintenance.h" #include "Data_FuelConsump.h" #include "IS31FL3236.h" #include "TimerB.h" #include "BU98R10.h" #include "SEG_DISPLAY.h" #include "Buzzer.h" #include "CAN_FUNC.h" /******************************************************************************* * * * 系统常规运行模式(SYS_MODE_OFF / SYS_MODE_ON / SYS_MODE_STANDBY )任务列表 * * * *******************************************************************************/ /*============================================================================== 伪实时任务 ------------------------------------------------------------------------------*/ void Sys_Run_Mode_Pseudo_Real_Time_Tasks(void) { Power_Management_Service(); DoCAN_Communication_Service(); UDS_Server_Application_Service(); IS31_Service(); BU98R10_Update_Service(); } /*============================================================================*/ /*============================================================================== 2ms周期执行任务 ------------------------------------------------------------------------------*/ void Sys_Run_Mode_2ms_Tasks(void) { UDS_KL15_init(); Analog_Signal_Conv_Service(); Sys_Status_Update_Service(); Common_Input_Para(); Gauges_Time_Xms_Count(2); UDS_10ms_Service(); } /*============================================================================*/ /*============================================================================== 10ms周期执行任务 ------------------------------------------------------------------------------*/ void Sys_Run_Mode_5ms_Tasks(void) { COM_RX_Process(); Flash_Sync_Signal_Generation_Service(); } /*============================================================================== 10ms周期执行任务 ------------------------------------------------------------------------------*/ void Sys_Run_Mode_10ms_Tasks(void) { DisplayServices(); loc_Display_Service(); Data_Mileage_Write_EEPROM(); Line_In_Debounce_Service(); Telltales_Management(); // Test_LED_AllLight(); Key_Service(); CAN_BUSOFF_Recover(); /*表头调度函数 added by yutian*/ UserGaugeSchedule(); /*在主循环中调用*/ /*end*/ CD4051B_ReadSignal_Serviece(); Sound_Play_Service(); Can_BusOff_Fun(); Fuel_User_KL15_ON_Processing_Service(); } /*============================================================================*/ /*============================================================================== 20ms周期执行任务 ------------------------------------------------------------------------------*/ void Sys_Run_Mode_20ms_Tasks(void) { Coolant_Processing_Service(); Tacho_Processing_Service(); Speed_Processing_Service(); Telltales_Left_Right_Management_Service(); AirPressure_Processing_Service(); Voltmeter_Processing_Service(); Sound_Management_Service(); CD4051B_Debounce_Service(); Seg_Display_Service(); Seg_Buffer_Commit(); BU98R10_Update_Request(); Buzzer_Track_Play_Service(); } /*============================================================================*/ /*============================================================================== 50ms周期执行任务 ------------------------------------------------------------------------------*/ void Sys_Run_Mode_50ms_Tasks(void) { Data_Time_Calibration(); Speed_PPK_Processing(); Sound_Scheduling_Service(); // BGTask(); IS31_Scan_Refresh(); } /*============================================================================*/ /*============================================================================== 100ms周期执行任务 ------------------------------------------------------------------------------*/ void Sys_Run_Mode_100ms_Tasks(void) { BL_Management_service(); RTE_RTC_Services_100Ms_Cbk(); Data_ODO_Processing(); Data_Trip_Processing(); // Data_Avg_Speed_Processing(); Data_TPMS_Value_Processing(); Data_Ambient_Temperature_Processing(); // 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(); /*CAN 数据处理*/ Drive_Info_IC1_STATUS_Rx(); /*加速度计算*/ Data_Acc_Speed_Processing(); /*高速路一般路报警判断*/ Data_GsLYbL_Speed_Processing(); } /*============================================================================*/ /******************************************************************************* * * * 系统休眠模式(SYS_MODE_SLEEP)任务列表 * * * *******************************************************************************/ /*============================================================================== 休眠模式下执行的后台任务 ------------------------------------------------------------------------------*/ void Sys_Sleep_Mode_Tasks(void) { } /*============================================================================*/ /******************************************************************************* * * * 精确的50us计时任务列表 * * * *******************************************************************************/ /*============================================================================== 精确的50us计时任务 禁止添加修改列表中的任务 ------------------------------------------------------------------------------*/ void Sys_Exact_50us_Tasks(void) { static uint16_t PerCounter = 0u; Sys_Rolling(); COM_NM_Process(); COM_TX_Process(); DoCAN_Timer_Update(50); // TimerB_Fre_Timeout(50); Cal_Veh_Cycle(SPEED_SIGNAL_PWM_IN); /*车速输入,非捕获方式 20211018*/ PerCounter++; if (PerCounter >= 20 * 5) { PerCounter = 0u; SEG_LCD_Window_Control_Service(); } Buzzer_Play_ISR(); } /*============================================================================*/ /******************************************************************************* * * * 精确的100ms计时任务列表 * * * *******************************************************************************/ /*============================================================================== 精确的100ms计时任务 禁止添加修改列表中的任务 ------------------------------------------------------------------------------*/ void Sys_Exact_100ms_Tasks(void) { Data_Mileage_ISR(); Service_OFF_Timing_Process(); Fuel_User_KL15_OFF_Processing_Service(); } /*============================================================================*/ void APP_Startup_Init(uint8_t startMode) { Power_Management_Init(startMode); }