#include "app.h" #include "os_timer.h" #include "stdio.h" #include "bsp_Uart.h" #include "bsp_Wdg.h" #include "bsp_Led.h" #include "bsp_print.h" #include "bsp_Flash.h" #include "bsp_W5500.h" #include "bsp_W5500_1.h" #include "bsp_Key.h" #include "bsp_DS1302.h" #include "proto_HSMS.h" #include "proto_SECS2.h" #include "proto_Para_Modbus.h" #include "proto_modbus_tcp_master.h" const char *HwVersion = "V2.2"; char SwVersion[24] = "SECS2 V2.2-V1.005.SJ"; void TASK_Idle(void); void Task_10ms(void); void Task_50ms(void); void Task_100ms(void); void Task_200ms(void); void Task_500ms(void); void Task_1s(void); void Task_2s(void); /****************************************** * 函数: AppInit * 功能: 初始化 * 参数: 无 * 返回: 无 * 描述: 无 ******************************************/ void App_Init(void) { Wdg.Init(); Wdg.Feed(); Usr_Flash.Init(); OsTimer_Init(); COM_Uart1.Init(&COM_Uart1); COM_Uart2.Init(&COM_Uart2); COM_Uart3.Init(&COM_Uart3); DS1302.Init(); W5500.Init(); Wdg.Feed(); W5500_1.Init(); HSMS.Init(); Para_Modbus.Init(); modbus_tcp.init(); Led.Init(); key.init(); Wdg.Feed(); printf("%s\n",SwVersion); } /****************************************** * 函数: App_Task * 功能: 分时复用 * 参数: 无 * 返回: 无 * 描述: 主循环中调用 ******************************************/ void App_Task(void) { if (TIME_TRUE == OsTimer_CheckTimeOut(OsTimeTick_10ms, osTime_MSecTick, 10)) { OsTimeTick_10ms = osTime_MSecTick; Task_10ms(); } if (TIME_TRUE == OsTimer_CheckTimeOut(OsTimeTick_50ms, osTime_MSecTick, 50)) { OsTimeTick_50ms = osTime_MSecTick; Task_50ms(); } if (TIME_TRUE == OsTimer_CheckTimeOut(OsTimeTick_100ms, osTime_MSecTick, 100)) { OsTimeTick_100ms = osTime_MSecTick; Task_100ms(); } if (TIME_TRUE == OsTimer_CheckTimeOut(OsTimeTick_200ms, osTime_MSecTick, 200)) { OsTimeTick_200ms = osTime_MSecTick; Task_200ms(); } if (TIME_TRUE == OsTimer_CheckTimeOut(OsTimeTick_500ms, osTime_MSecTick, 500)) { OsTimeTick_500ms = osTime_MSecTick; Task_500ms(); } if (TIME_TRUE == OsTimer_CheckTimeOut(OsTimeTick_1s, osTime_MSecTick, 1000)) { OsTimeTick_1s = osTime_MSecTick; Task_1s(); } if (TIME_TRUE == OsTimer_CheckTimeOut(OsTimeTick_2s, osTime_MSecTick, 2000)) { OsTimeTick_2s = osTime_MSecTick; Task_2s(); } TASK_Idle(); } /*空闲执行的函数*/ void TASK_Idle(void) { COM_Uart1.Rx_Task(&COM_Uart1); COM_Uart2.Rx_Task(&COM_Uart2); COM_Uart3.Rx_Task(&COM_Uart3); W5500.Task(); W5500_1.Task(); SECS2.Tx_Alarm_Task(); SECS2.Tx_Dev_State_Task(); SECS2.Tx_Set_Ask_Task(); Wdg.Feed(); proto_modbus_print_1s(); } void Task_10ms(void) { key.task(); } void Task_50ms(void) { } void Task_100ms(void) { } void Task_200ms(void) { } void Task_500ms(void) { Led.Flash(); modbus_tcp.task(); } void Task_1s(void) { DS1302.Task(); DS1302.UpdateBase(); W5500.Monitor_task(); W5500_1.Monitor_task(); } void Task_2s(void) { }