Browse Source

添加低功耗模式灭灯处理

bfysop-v2
mr.zhangsan 1 year ago
parent
commit
ace64965db
  1. 44
      source/app/app_config.c
  2. 6
      source/app/app_config.h
  3. 16
      source/app/main.c
  4. 3
      source/app/task_btn.c
  5. 3
      source/app/task_rs485.c

44
source/app/app_config.c

@ -87,19 +87,23 @@ void L3_reg_reset(void)
// R.auth_flag = (0<<4) | 0;
R.auth_flag = (0<<4) | 0x01;
//设置led灯状态
for(i=0; i<LED_BTN_NUM; i++)
{
R.led_status[i] = BLED0_OFF;
}
R.led_status[0] = BLED0_ON;
L3_led_init();
//从机ID
R.slave_id = 0x01;
R.low_power_mode = 0;
//功耗模式:正常模式
R.power_mode = POWER_NORMAL;
//功能按键按下状态
R.func_btn = 0;
//nfc编号
R.nfc.nfc_no[0] = 0;
R.nfc.nfc_no[1] = 0;
//4路RFID编号
for(i=0; i<4; i++)
{
R.rfids[i].rfid_no[0] = 0;
@ -110,7 +114,7 @@ void L3_reg_reset(void)
//for test
// R.slave_id = 0x01;
// R.low_power_mode = 0;
// R.power_mode = 0;
// R.func_btn = 1;
// R.nfc.nfc_no[0] = 0x01;
// R.nfc.nfc_no[1] = 0x23;
@ -161,3 +165,27 @@ U8 L3_find_rfid_table(U16 rfidno)
}
return LED_BTN_NUM;
}
void L3_set_power_mode(U8 mode)
{
if(R.power_mode == POWER_NORMAL)
{
if(mode == POWER_LOW)
{
//除了功能按键,所有灯全灭
L3_led_init();
}
}
R.power_mode = mode;
}
void L3_led_init(void)
{
//设置led灯状态
for(i=0; i<LED_BTN_NUM; i++)
{
R.led_status[i] = BLED0_OFF;
}
R.led_status[0] = BLED0_ON;
}

6
source/app/app_config.h

@ -25,6 +25,8 @@
// #define D_ADC_CHANNEL_NUM 4
#define LED_BTN_NUM 14
#define POWER_NORMAL 0
#define POWER_LOW 1
typedef struct global_register
{
@ -35,7 +37,7 @@ typedef struct global_register
U8 slave_id;
//低功耗模式
U8 low_power_mode;
U8 power_mode;
//led状态标志,分表代表第n个led灯的状态
U8 led_status[LED_BTN_NUM];
@ -98,6 +100,8 @@ extern void L3_reg_2_iap(void);
extern void L3_iap_2_reg(void);
extern void L3_reg_reset(void);
extern void L3_reg_init(void);
extern void L3_led_init(void);
extern void L3_set_power_mode(U8 mode);
extern U8 L3_find_rfid_table(U16 rfidno);
extern U8 L3_new_rfid(U16 rfidno, U8 rssi, U8 ant);

16
source/app/main.c

@ -173,22 +173,22 @@ void main(void)
}
//设置bled任务
// L3_task_bled_handler(&_s_task_bled);
L3_task_bled_handler(&_s_task_bled);
// //扫描键盘任务
// L3_task_btn_handler(&_s_task_btn);
//NFC协议处理
// L3_task_nfc_handler(&_s_task_nfc);
L3_task_btn_handler(&_s_task_btn);
// //10s认证过期
// L3_task_auth_handler(&_s_task_auth);
L3_task_auth_handler(&_s_task_auth);
//NFC协议处理
L3_task_nfc_handler(&_s_task_nfc);
// // //RFID协议处理
// L3_task_rfid_handler(&_s_task_rfid);
L3_task_rfid_handler(&_s_task_rfid);
// // //RS485协议处理
// L3_task_rs485_handler(&_s_task_rs485);
L3_task_rs485_handler(&_s_task_rs485);
//串口调试
// if(ts_uart3_recv_buf.ok == 1){

3
source/app/task_btn.c

@ -43,7 +43,10 @@ void L3_task_btn_handler(S_TASK_BTN *s)
//功能按键
if(key == 0)
{
//设置功能按键按下
R.func_btn = 1;
//功能键按下退出低功耗模式
L3_set_power_mode(POWER_NORMAL);
}
else
{

3
source/app/task_rs485.c

@ -62,7 +62,8 @@ void L3_task_rs485_handler(S_TASK_RS485 *s)
//buf[0] 是否需要授权标志、低功耗模式
R.auth_flag &= 0x0F;
R.auth_flag |= tpc_rs485.buf[0] & 0xF0;
R.low_power_mode = tpc_rs485.buf[0] & 0x0F;
// R.low_power_mode = tpc_rs485.buf[0] & 0x0F;
L3_set_power_mode(tpc_rs485.buf[0] & 0x0F);
//buf[1-2], rfid映射
//TODO 上位机发过来的rfid编号如何处理

Loading…
Cancel
Save