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.
97 lines
2.3 KiB
97 lines
2.3 KiB
////////////////////////////////////////////////////////////////////////////
|
|
///@copyright Copyright (c) 2018, 传控科技 All rights reserved.
|
|
///-------------------------------------------------------------------------
|
|
/// @file bsp_drv.c
|
|
/// @brief bsp @ driver config
|
|
///-------------------------------------------------------------------------
|
|
/// @version 1.0
|
|
/// @author CC
|
|
/// @date 20180331
|
|
/// @note cc_AS_stc02
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
|
#include "task_low_power.h"
|
|
#include "../app/app_config.h"
|
|
#include "../bsp/bsp_config.h"
|
|
#include "../bsp/bsp_rfid.h"
|
|
#include "../msp/uart0.h"
|
|
#include "../app/task_rfid.h"
|
|
|
|
S_TASK_LOW_POWER _s_task_low_power;
|
|
|
|
void L3_task_low_power_init(void)
|
|
{
|
|
L1_task_init(&_s_task_low_power.task);
|
|
L3_task_s_go(_s_task_low_power,D_task_init);
|
|
}
|
|
|
|
#define D_task_LOW_POWER_SET 0x50
|
|
#define D_task_LOW_POWER_CHANGE 0x51
|
|
#define D_task_XD_CHANGE 0x52
|
|
|
|
void L3_task_low_power_handler(S_TASK_LOW_POWER *s)
|
|
{
|
|
TTSS_Task_init()
|
|
s->power_mode = R.power_mode;
|
|
s->xd_mode = R.xd_mode;
|
|
L2_task_go(D_task_LOW_POWER_SET);
|
|
|
|
TTSS_Task_step(D_task_LOW_POWER_SET)
|
|
if(R.power_mode == POWER_LOW)
|
|
{
|
|
//低功耗模式除了功能按键,所有灯全灭
|
|
L3_led_clear();
|
|
//低功耗模式下禁用RFID
|
|
bsp_rfid_en(RFID_DISABLE);
|
|
//低功耗模式下,无法(也不需要)开启心电模式
|
|
R.xd_mode = 0;
|
|
}
|
|
L2_task_go_Tdelay(D_task_LOW_POWER_CHANGE,0);
|
|
|
|
TTSS_Task_step(D_task_LOW_POWER_CHANGE)
|
|
if(s->power_mode != R.power_mode)
|
|
{
|
|
s->power_mode = R.power_mode;
|
|
|
|
//退出低功耗模式时,启用RFID
|
|
if(R.power_mode == POWER_NORMAL)
|
|
{
|
|
//启用rfid
|
|
bsp_rfid_en(RFID_ENABLE);
|
|
//重新初始化RFID任务
|
|
L3_task_rfid_init();
|
|
//心电进入正常模式
|
|
R.xd_mode = 0;
|
|
}
|
|
}
|
|
L2_task_go_Tdelay(D_task_XD_CHANGE,0);
|
|
|
|
TTSS_Task_step(D_task_XD_CHANGE)
|
|
//正常功耗模式下,心电模式才有意义
|
|
if(R.power_mode == POWER_NORMAL)
|
|
{
|
|
if(s->xd_mode != R.xd_mode)
|
|
{
|
|
s->xd_mode = R.xd_mode;
|
|
if(R.xd_mode == 0)
|
|
{
|
|
//启用rfid
|
|
bsp_rfid_en(RFID_ENABLE);
|
|
//重新初始化RFID任务
|
|
L3_task_rfid_init();
|
|
}
|
|
else
|
|
{
|
|
//禁用RFID
|
|
bsp_rfid_en(RFID_DISABLE);
|
|
}
|
|
}
|
|
}
|
|
L2_task_go_Tdelay(D_task_LOW_POWER_SET,D_Tdelay_500ms);
|
|
|
|
TTSS_Task_end();
|
|
}
|
|
|
|
|
|
|
|
|
|
|