9 changed files with 191 additions and 27 deletions
@ -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(); |
|||
} |
@ -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
|
Loading…
Reference in new issue