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) | 0;
R.auth_flag = (0<<4) | 0x01; R.auth_flag = (0<<4) | 0x01;
//设置led灯状态 //设置led灯状态
for(i=0; i<LED_BTN_NUM; i++) L3_led_init();
{
R.led_status[i] = BLED0_OFF;
}
R.led_status[0] = BLED0_ON;
//从机ID
R.slave_id = 0x01; R.slave_id = 0x01;
R.low_power_mode = 0;
//功耗模式:正常模式
R.power_mode = POWER_NORMAL;
//功能按键按下状态
R.func_btn = 0; R.func_btn = 0;
//nfc编号
R.nfc.nfc_no[0] = 0; R.nfc.nfc_no[0] = 0;
R.nfc.nfc_no[1] = 0; R.nfc.nfc_no[1] = 0;
//4路RFID编号
for(i=0; i<4; i++) for(i=0; i<4; i++)
{ {
R.rfids[i].rfid_no[0] = 0; R.rfids[i].rfid_no[0] = 0;
@ -110,7 +114,7 @@ void L3_reg_reset(void)
//for test //for test
// R.slave_id = 0x01; // R.slave_id = 0x01;
// R.low_power_mode = 0; // R.power_mode = 0;
// R.func_btn = 1; // R.func_btn = 1;
// R.nfc.nfc_no[0] = 0x01; // R.nfc.nfc_no[0] = 0x01;
// R.nfc.nfc_no[1] = 0x23; // R.nfc.nfc_no[1] = 0x23;
@ -161,3 +165,27 @@ U8 L3_find_rfid_table(U16 rfidno)
} }
return LED_BTN_NUM; 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 D_ADC_CHANNEL_NUM 4
#define LED_BTN_NUM 14 #define LED_BTN_NUM 14
#define POWER_NORMAL 0
#define POWER_LOW 1
typedef struct global_register typedef struct global_register
{ {
@ -35,7 +37,7 @@ typedef struct global_register
U8 slave_id; U8 slave_id;
//低功耗模式 //低功耗模式
U8 low_power_mode; U8 power_mode;
//led状态标志,分表代表第n个led灯的状态 //led状态标志,分表代表第n个led灯的状态
U8 led_status[LED_BTN_NUM]; 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_iap_2_reg(void);
extern void L3_reg_reset(void); extern void L3_reg_reset(void);
extern void L3_reg_init(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_find_rfid_table(U16 rfidno);
extern U8 L3_new_rfid(U16 rfidno, U8 rssi, U8 ant); extern U8 L3_new_rfid(U16 rfidno, U8 rssi, U8 ant);

16
source/app/main.c

@ -173,22 +173,22 @@ void main(void)
} }
//设置bled任务 //设置bled任务
// L3_task_bled_handler(&_s_task_bled); L3_task_bled_handler(&_s_task_bled);
// //扫描键盘任务 // //扫描键盘任务
// L3_task_btn_handler(&_s_task_btn); L3_task_btn_handler(&_s_task_btn);
// //10s认证过期
L3_task_auth_handler(&_s_task_auth);
//NFC协议处理 //NFC协议处理
// L3_task_nfc_handler(&_s_task_nfc); L3_task_nfc_handler(&_s_task_nfc);
// //10s认证过期
// L3_task_auth_handler(&_s_task_auth);
// // //RFID协议处理 // // //RFID协议处理
// L3_task_rfid_handler(&_s_task_rfid); L3_task_rfid_handler(&_s_task_rfid);
// // //RS485协议处理 // // //RS485协议处理
// L3_task_rs485_handler(&_s_task_rs485); L3_task_rs485_handler(&_s_task_rs485);
//串口调试 //串口调试
// if(ts_uart3_recv_buf.ok == 1){ // 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) if(key == 0)
{ {
//设置功能按键按下
R.func_btn = 1; R.func_btn = 1;
//功能键按下退出低功耗模式
L3_set_power_mode(POWER_NORMAL);
} }
else else
{ {

3
source/app/task_rs485.c

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

Loading…
Cancel
Save