Browse Source

feature:1.任务2:按键进入开机、关机、配网模完成!

issu01
Zhangwen 4 months ago
parent
commit
7a730c06cd
  1. 3
      .vscode/settings.json
  2. 3
      source/app/app_config.c
  3. 4
      source/app/app_config.h
  4. 26
      source/app/main.c
  5. 2
      source/app/main.h
  6. 87
      source/app/task_keystatus.c
  7. 38
      source/app/task_keystatus.h
  8. 41
      source/bsp/bsp_key.c
  9. 14
      source/bsp/bsp_key.h

3
.vscode/settings.json

@ -38,6 +38,7 @@
"bsp_key.h": "c",
"task_appstatus.h": "c",
"bsp_wt2605b.h": "c",
"task_apptset.h": "c"
"task_apptset.h": "c",
"task_keystatus.h": "c"
}
}

3
source/app/app_config.c

@ -103,11 +103,12 @@ void L3_reg_reset(void)
{
U8 i = 0;
R.app_status = POW_ON;
R.app_status = POW_OFF;
R.pen_sta = 0;
R.pen_net_sta = 0;
R.pen_ele_sta = 0;
R.question_sta = 0;
R.spee_order = 0;

4
source/app/app_config.h

@ -34,8 +34,8 @@ typedef struct pen_point
typedef enum
{
POW_OFF = 0, //机状态
POW_ON = 1, //机状态
POW_OFF = 0, //机状态
POW_ON = 1, //机状态
WIFI_CONFIG = 2, //WIFI配置连接中
WIFI_CONNECTED = 3, //WIFI连接成功
TCP_CONNECTED = 4, //TCP连接成

26
source/app/main.c

@ -43,6 +43,8 @@ void L0_TASK_init(void)
L3_task_AppStatus_init();
L3_task_AppTest_init();
L3_task_KeyStatus_init();
// //游戏任务初始化
// L3_task_game_init();
// //寄存器监听任务初始化
@ -104,6 +106,7 @@ void main(void)
{
// L1_Oid_readoid();
if(1 == s_nos_tick.t1s_heartbeat)//1s
{
s_nos_tick.t1s_heartbeat = 0;//置0清空
@ -120,27 +123,14 @@ void main(void)
// }
// L0_uart0_sendArrayHex(data_save_arr, 30);
L0_uart0_uc('.');
// i ++;
// if (i == 2)
// {
// L2_GREEN_LED_ON();
// }
// if (i == 4)
// {
// L2_RED_LED_ON();
// }
// if (i == 6)
// {
// i = 0;
// L2_LED_OFF();
// }
// L0_uart3_sendArray((U8 *)&audio_up,9);
// L0_uart0_uc(L2_ReadKey1());
// L0_uart0_uc(L2_ReadKey2());
// L0_uart0_uc(L2_ReadKey3());
}
L3_task_appstatus_handler(&_s_task_appstatus);
L3_task_AppTest_handler(&_s_task_apptest);
// L3_task_AppTest_handler(&_s_task_apptest);
L3_task_keystatus_handler(&_s_task_keystatus);
// // 串口2的 接收数据 测试
// if(ts_uart[uNum2].r.ok == 1)

2
source/app/main.h

@ -70,6 +70,8 @@
#include "../app/task_appstatus.h"
#include "../app/task_appTEST.h"
#include "../app/task_keystatus.h"
#include "../bsp/bsp_led.h"
#include "../bsp/bsp_key.h"
#include "../bsp/bsp_WT2605B.h"

87
source/app/task_keystatus.c

@ -0,0 +1,87 @@
////////////////////////////////////////////////////////////////////////////
///@copyright Copyright (c) 2018, 传控科技 All rights reserved.
///-------------------------------------------------------------------------
/// @file bsp_drv.c
/// @brief bsp @ driver config
///-------------------------------------------------------------------------
/// @version 1.0
/// @author CC
/// @date 20180331
/// @note cc_AS_stc02
//////////////////////////////////////////////////////////////////////////////
#include "../app/task_keystatus.h"
#include "../bsp/bsp_key.h"
#include "../app/app_config.h"
#include "../msp/uart0.h"
S_TASK_KEYSTATUS _s_task_keystatus;
void L3_task_KeyStatus_init(void)
{
L1_task_init(&_s_task_keystatus.task);
_s_task_keystatus.Key1_Down_Begin_Time = 0;
_s_task_keystatus.Key1_handled = 0;
_s_task_keystatus.Key2_Down_Begin_Time = 0;
_s_task_keystatus.Key3_Down_Begin_Time = 0;
L3_task_s_go(_s_task_keystatus,D_task_init);
}
#define D_task_KEY_DETECT 0x50
void L3_task_keystatus_handler(S_TASK_KEYSTATUS *s)
{
TTSS_Task_init()
L2_task_go_Tdelay(D_task_KEY_DETECT,D_Tdelay_300ms);
TTSS_Task_step(D_task_KEY_DETECT)
if(L2_ReadKey1() == Key_Down)
{
if (s->Key1_Down_Begin_Time == 0)
{
s->Key1_Down_Begin_Time = D_sys_now;
}
else
{
U32 diff = D_sys_now -s->Key1_Down_Begin_Time;
L0_uart0_ulhex(diff);
if (diff >= LongKey_PWR_MSeconds/JIFFIES && s->Key1_handled == 0)
{
if (R.app_status == POW_OFF)
{
R.app_status = POW_ON;
s->Key1_Down_Begin_Time = 0;
s->Key1_handled = 1;
}
else
{
R.app_status = POW_OFF;
s->Key1_Down_Begin_Time = 0;
s->Key1_handled = 1;
}
}
else if (diff >= LongKey_WIFICONF_MSeconds/JIFFIES && s->Key1_handled == 0)
{
if (L2_ReadKey3() == Key_Down)
{
if (R.app_status != POW_OFF)
{
R.app_status = WIFI_CONFIG;
s->Key1_handled = 1;
}
}
}
}
}
else
{
s->Key1_Down_Begin_Time = 0;
s->Key1_handled = 0;
}
L2_task_go_Tdelay(D_task_KEY_DETECT,D_Tdelay_300ms);
TTSS_Task_end();
}

38
source/app/task_keystatus.h

@ -0,0 +1,38 @@
////////////////////////////////////////////////////////////////////////////
///@copyright Copyright (c) 2018, 传控科技 All rights reserved.
///-------------------------------------------------------------------------
/// @file bsp_drv.h
/// @brief bsp @ driver config
///-------------------------------------------------------------------------
/// @version 1.0
/// @author CC
/// @date 20180331
/// @note cc_AS_stc02
//////////////////////////////////////////////////////////////////////////////
#ifndef _TASK_KEYSTATUS_H
#define _TASK_KEYSTATUS_H
#include "../ctask/task.h"
#define LongKey_PWR_MSeconds 3000
#define LongKey_WIFICONF_MSeconds 2000
typedef struct _s_task_keystatus
{
TS_task task;
U32 Key1_Down_Begin_Time;
U8 Key1_handled;
U32 Key2_Down_Begin_Time;
U32 Key3_Down_Begin_Time;
}S_TASK_KEYSTATUS;
extern S_TASK_KEYSTATUS _s_task_keystatus;
extern void L3_task_KeyStatus_init(void);
extern void L3_task_keystatus_handler(S_TASK_KEYSTATUS *s);
#endif // #ifndef

41
source/bsp/bsp_key.c

@ -3,7 +3,46 @@
void L2_key_init()
{
D_stdIO_P3(BITN2);
D_stdIO_P3(BITN3); //准双向口
D_stdIO_P3(BITN3);//准双向口
D_stdIO_P4(BITN0);
//初始化为高电平
Key1 = Key2 = Key3 = 1;
}
U8 L2_ReadKey1(void)
{
Key1 = 1;
if (Key1 == 0)
{
return Key_Down;
}
else
{
return Key_Up;
}
}
U8 L2_ReadKey2(void)
{
Key2 = 1;
if (Key2 == 0)
{
return Key_Down;
}
else
{
return Key_Up;
}
}
U8 L2_ReadKey3(void)
{
Key3 = 1;
if (Key3 == 0)
{
return Key_Down;
}
else
{
return Key_Up;
}
}

14
source/bsp/bsp_key.h

@ -4,12 +4,18 @@
#include "bsp_config.h"
//按键
#define key1 P32 //音量增大
#define key2 P33 //音量减小
#define key3 P40 //开关机
#define Key (key1 && key2 && key3)
#define Key_Down 0
#define Key_Up 1
#define Key1 P32 //音量增大
#define Key2 P33 //音量减小
#define Key3 P40 //开关机
// #define Key (key1 && key2 && key3)
extern void L2_key_init();
extern U8 L2_ReadKey1(void);
extern U8 L2_ReadKey2(void);
extern U8 L2_ReadKey3(void);
#endif
Loading…
Cancel
Save