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", "bsp_key.h": "c",
"task_appstatus.h": "c", "task_appstatus.h": "c",
"bsp_wt2605b.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; U8 i = 0;
R.app_status = POW_ON; R.app_status = POW_OFF;
R.pen_sta = 0; R.pen_sta = 0;
R.pen_net_sta = 0; R.pen_net_sta = 0;
R.pen_ele_sta = 0; R.pen_ele_sta = 0;
R.question_sta = 0; R.question_sta = 0;
R.spee_order = 0; R.spee_order = 0;

4
source/app/app_config.h

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

26
source/app/main.c

@ -43,6 +43,8 @@ void L0_TASK_init(void)
L3_task_AppStatus_init(); L3_task_AppStatus_init();
L3_task_AppTest_init(); L3_task_AppTest_init();
L3_task_KeyStatus_init();
// //游戏任务初始化 // //游戏任务初始化
// L3_task_game_init(); // L3_task_game_init();
// //寄存器监听任务初始化 // //寄存器监听任务初始化
@ -103,6 +105,7 @@ void main(void)
while(1) while(1)
{ {
// L1_Oid_readoid(); // L1_Oid_readoid();
if(1 == s_nos_tick.t1s_heartbeat)//1s if(1 == s_nos_tick.t1s_heartbeat)//1s
{ {
@ -120,27 +123,14 @@ void main(void)
// } // }
// L0_uart0_sendArrayHex(data_save_arr, 30); // L0_uart0_sendArrayHex(data_save_arr, 30);
L0_uart0_uc('.'); L0_uart0_uc('.');
// i ++; // L0_uart0_uc(L2_ReadKey1());
// if (i == 2) // L0_uart0_uc(L2_ReadKey2());
// { // L0_uart0_uc(L2_ReadKey3());
// 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);
} }
L3_task_appstatus_handler(&_s_task_appstatus); 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的 接收数据 测试 // // 串口2的 接收数据 测试
// if(ts_uart[uNum2].r.ok == 1) // if(ts_uart[uNum2].r.ok == 1)

2
source/app/main.h

@ -70,6 +70,8 @@
#include "../app/task_appstatus.h" #include "../app/task_appstatus.h"
#include "../app/task_appTEST.h" #include "../app/task_appTEST.h"
#include "../app/task_keystatus.h"
#include "../bsp/bsp_led.h" #include "../bsp/bsp_led.h"
#include "../bsp/bsp_key.h" #include "../bsp/bsp_key.h"
#include "../bsp/bsp_WT2605B.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() void L2_key_init()
{ {
D_stdIO_P3(BITN2); D_stdIO_P3(BITN2);
D_stdIO_P3(BITN3); //准双向口 D_stdIO_P3(BITN3);//准双向口
D_stdIO_P4(BITN0); 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" #include "bsp_config.h"
//按键 //按键
#define key1 P32 //音量增大 #define Key_Down 0
#define key2 P33 //音量减小 #define Key_Up 1
#define key3 P40 //开关机
#define Key (key1 && key2 && key3) #define Key1 P32 //音量增大
#define Key2 P33 //音量减小
#define Key3 P40 //开关机
// #define Key (key1 && key2 && key3)
extern void L2_key_init(); extern void L2_key_init();
extern U8 L2_ReadKey1(void);
extern U8 L2_ReadKey2(void);
extern U8 L2_ReadKey3(void);
#endif #endif
Loading…
Cancel
Save