diff --git a/source/app/app_config.c b/source/app/app_config.c index 13a72f0..e74ab4b 100644 --- a/source/app/app_config.c +++ b/source/app/app_config.c @@ -229,18 +229,4 @@ void L3_set_power_mode(U8 mode) // } // } R.power_mode = mode; - if(R.power_mode == POWER_LOW) - { - //除了功能按键,所有灯全灭 - L3_led_clear(); - //禁用rfid - bsp_rfid_en(RFID_DISABLE); - } - else - { - //启用rfid - bsp_rfid_en(RFID_ENABLE); - //重新初始化RFID任务 - L3_task_rfid_init(); - } } \ No newline at end of file diff --git a/source/app/task_low_power.c b/source/app/task_low_power.c index b0f149b..c122ba3 100644 --- a/source/app/task_low_power.c +++ b/source/app/task_low_power.c @@ -15,6 +15,7 @@ #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; @@ -29,6 +30,7 @@ void L3_task_low_power_init(void) void L3_task_low_power_handler(S_TASK_LOW_POWER *s) { TTSS_Task_init() + s->power_mode = R.power_mode; L2_task_go(D_task_LOW_POWER_SET); TTSS_Task_step(D_task_LOW_POWER_SET) @@ -39,7 +41,21 @@ void L3_task_low_power_handler(S_TASK_LOW_POWER *s) //禁用RFID bsp_rfid_en(RFID_DISABLE); } - L2_task_go_Tdelay(D_task_LOW_POWER_SET,D_Tdelay_1s); + + 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(); + } + } + L2_task_go_Tdelay(D_task_LOW_POWER_SET,D_Tdelay_500ms); TTSS_Task_end(); } diff --git a/source/app/task_low_power.h b/source/app/task_low_power.h index a9e4b7d..1cfc556 100644 --- a/source/app/task_low_power.h +++ b/source/app/task_low_power.h @@ -19,6 +19,7 @@ typedef struct _s_task_low_power { + U8 power_mode; TS_task task; }S_TASK_LOW_POWER; diff --git a/source/ctask/tick.h b/source/ctask/tick.h index ac3bea0..3ea1fac 100644 --- a/source/ctask/tick.h +++ b/source/ctask/tick.h @@ -49,6 +49,7 @@ extern struct _s_nos_tick_ s_nos_tick; #define D_Tdelay_200ms ((200-1) / JIFFIES+ 1) #define D_Tdelay_300ms ((300-1) / JIFFIES + 1) #define D_Tdelay_400ms ((400-1) / JIFFIES + 1) +#define D_Tdelay_500ms ((500-1) / JIFFIES + 1) #define D_Tdelay_1s (1 * HZ) #define D_Tdelay_2s (2 * HZ) #define D_Tdelay_3s (3 * HZ)