168 lines
3.1 KiB
C
168 lines
3.1 KiB
C
#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)
|
|
{
|
|
|
|
}
|
|
|