Browse Source

feature: 添加心电模式

bfysop-v2
mr.zhangsan 1 year ago
parent
commit
dcf1ea5785
  1. 3
      source/.vscode/settings.json
  2. 3
      source/app/app_config.c
  3. 3
      source/app/app_config.h
  4. 10
      source/app/task_btn.c
  5. 36
      source/app/task_low_power.c
  6. 1
      source/app/task_low_power.h
  7. 2
      source/app/task_rfid.c

3
source/.vscode/settings.json

@ -24,6 +24,7 @@
"rs485.h": "c",
"bsp_led.h": "c",
"task_nfc_auth.h": "c",
"stc_stc8h.h": "c"
"stc_stc8h.h": "c",
"task.h": "c"
}
}

3
source/app/app_config.c

@ -77,6 +77,9 @@ int i;
void L3_reg_reset(void)
{
//心电模式
R.xd_mode = 0;
//设置RFID对照表
for(i=0; i<LED_BTN_NUM; i++)
{

3
source/app/app_config.h

@ -71,6 +71,9 @@ typedef struct global_register
//rfid天线编号1,2,3,4 FF代表按键
U8 ant;
}rfids[4];
//心电模式
U8 xd_mode;
}GlobalRegister;
extern GlobalRegister R;

10
source/app/task_btn.c

@ -49,7 +49,15 @@ void L3_task_btn_handler(S_TASK_BTN *s)
//功能键按下退出低功耗模式
//L3_set_power_mode(POWER_NORMAL);
}
else
//心电模式
else if(key == 13)
{
//设置心电模式按下
R.xd_mode ^= 1;
//亮灯
R.led_status[key] = R.xd_mode;
}
else if(key>=1 && key <=12)
{
//如果不需要授权 or 需要但已经授权
if(!(R.auth_flag & 0xF0) || (R.auth_flag & 0x0F))

36
source/app/task_low_power.c

@ -26,22 +26,29 @@ void L3_task_low_power_init(void)
}
#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
//低功耗模式下禁用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;
@ -53,6 +60,31 @@ void L3_task_low_power_handler(S_TASK_LOW_POWER *s)
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);

1
source/app/task_low_power.h

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

2
source/app/task_rfid.c

@ -45,7 +45,7 @@ void L3_task_rfid_handler(S_TASK_RFID *s)
L0_uart0_uchex(sizeof(rfidSelCmd) / sizeof(U8));
L0_uart0_uchex(sizeof(rfidLoopRead) / sizeof(U8));
//注意这里加delay,因为rfid_en是强推挽模式,强推挽模式生效有延迟,经测试这里的时间需要>=2s
L2_task_go_Tdelay(D_task_RFID_SET,D_Tdelay_3s);
L2_task_go_Tdelay(D_task_RFID_SET,D_Tdelay_4s);
TTSS_Task_step(D_task_RFID_SET)
//1.设置天线

Loading…
Cancel
Save