平车主控板(运维板)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

84 lines
1.8 KiB

5 years ago
#include "app_task_relay.h"
#include "app_common.h"
#include "../app/app_paraid.h"
struct _s_task_relay_ s_task_relay;
void L3_task_relay_init(void)
{
U8 i = 0;
//0.任务初始化
L1_task_init(&s_task_relay.task);
L3_task_s_go(s_task_relay,D_task_init);
//1.任务变量初始化
s_task_relay.pc = 0;
s_task_relay.pc_stmp = s_nos_tick.t_1s;
//2.读取flash参数
#if 0
if(1 == s_flash_data.page0_ok)
{
for(i=0;i<RELAY_NUM;i++)
{
s_relay_oper[i].relay_status = s_flash_data.f_page0.relay_status[i];
}
//3.继电器上电初始化
for(i=0;i<RELAY_NUM;i++)
{
// s_relay_oper[i].relay_handler(
// s_relay_oper[i].relay_status
// );
s_relay_oper[i].relay_handler(
L2_relay_convert_and_do(i,s_relay_oper[i].relay_status)
);
}
}
if(1 == s_flash_data.page1_ok)
{
for(i=0;i<RELAY_NUM;i++)
{
s_relay_oper[i].relay_oper_max_time = s_flash_data.f_page1.relay_oper_max_time[i];
}
}
#endif
}
#define TTSS_TASK_RELAY_01 0x1
#define TTSS_TASK_RELAY_02 0x2
#define TTSS_TASK_RELAY_03 0x3
void L3_task_relay_handle(struct _s_task_relay_ *s)
{
TTSS_Task_init();
L2_task_go(TTSS_TASK_RELAY_01);
TTSS_Task_step(TTSS_TASK_RELAY_01)
if(s->pc != 0)
{
if(PC_GUANJI == s->pc)
{
if(s_nos_tick.t_1s - s->pc_stmp >= 7) //至少经过6s 6s-7s
{
s->pc = 0;
s->pc_stmp = s_nos_tick.t_1s;
s_relay_oper[RELAY_PC].relay_handler(L2_relay_convert_and_do(RELAY_PC,RELAY_KAI));
s_relay_oper[RELAY_PC].relay_status = RELAY_KAI;
}
}
else
{
if(s_nos_tick.t_1s - s->pc_stmp >= 2) //至少经过1s 1s-2s
{
s->pc = 0;
s->pc_stmp = s_nos_tick.t_1s;
s_relay_oper[RELAY_PC].relay_handler(L2_relay_convert_and_do(RELAY_PC,RELAY_KAI));
s_relay_oper[RELAY_PC].relay_status = RELAY_KAI;
}
}
}
L2_task_go_Tdelay(TTSS_TASK_RELAY_01,D_Tdelay_300ms);
TTSS_Task_end();
}