Browse Source

修正RFID启用bug

bfysop-v2
mr.zhangsan 1 year ago
parent
commit
f8defdb2f4
  1. 14
      source/app/app_config.c
  2. 18
      source/app/task_low_power.c
  3. 1
      source/app/task_low_power.h
  4. 1
      source/ctask/tick.h

14
source/app/app_config.c

@ -229,18 +229,4 @@ void L3_set_power_mode(U8 mode)
// } // }
// } // }
R.power_mode = 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();
}
} }

18
source/app/task_low_power.c

@ -15,6 +15,7 @@
#include "../bsp/bsp_config.h" #include "../bsp/bsp_config.h"
#include "../bsp/bsp_rfid.h" #include "../bsp/bsp_rfid.h"
#include "../msp/uart0.h" #include "../msp/uart0.h"
#include "../app/task_rfid.h"
S_TASK_LOW_POWER _s_task_low_power; 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) void L3_task_low_power_handler(S_TASK_LOW_POWER *s)
{ {
TTSS_Task_init() TTSS_Task_init()
s->power_mode = R.power_mode;
L2_task_go(D_task_LOW_POWER_SET); L2_task_go(D_task_LOW_POWER_SET);
TTSS_Task_step(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 //禁用RFID
bsp_rfid_en(RFID_DISABLE); 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(); TTSS_Task_end();
} }

1
source/app/task_low_power.h

@ -19,6 +19,7 @@
typedef struct _s_task_low_power typedef struct _s_task_low_power
{ {
U8 power_mode;
TS_task task; TS_task task;
}S_TASK_LOW_POWER; }S_TASK_LOW_POWER;

1
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_200ms ((200-1) / JIFFIES+ 1)
#define D_Tdelay_300ms ((300-1) / JIFFIES + 1) #define D_Tdelay_300ms ((300-1) / JIFFIES + 1)
#define D_Tdelay_400ms ((400-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_1s (1 * HZ)
#define D_Tdelay_2s (2 * HZ) #define D_Tdelay_2s (2 * HZ)
#define D_Tdelay_3s (3 * HZ) #define D_Tdelay_3s (3 * HZ)

Loading…
Cancel
Save