You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

108 lines
2.6 KiB

////////////////////////////////////////////////////////////////////////////
///@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 "../app/app_config.h"
#include "../app/task_w600.h"
#include "../bsp/bsp_key.h"
#include "../bsp/bsp_WT2605B.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.Key2_Down_Begin_Time = 0;
_s_task_keystatus.Key3_Down_Begin_Time = 0;
_s_task_keystatus.Key1_handled = 0;
_s_task_keystatus.Key2_handled = 0;
_s_task_keystatus.Key3_handled = 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_ReadKey3() == Key_Down)
{
if (s->Key3_Down_Begin_Time == 0)
{
s->Key3_Down_Begin_Time = D_sys_now;
}
else
{
U32 diff = D_sys_now -s->Key3_Down_Begin_Time;
// L0_uart0_ulhex(diff);
if (diff >= LongKey_PWR_MSeconds/JIFFIES && s->Key3_handled == 0)
{
if (R.app_status == POW_OFF)
{
R.app_status = POW_ON;
s->Key3_Down_Begin_Time = 0;
s->Key3_handled = 1;
}
else
{
R.app_status = POW_OFF;
s->Key3_Down_Begin_Time = 0;
s->Key3_handled = 1;
}
}
else if (diff >= LongKey_WIFICONF_MSeconds/JIFFIES && s->Key3_handled == 0)
{
if (L2_ReadKey1() == Key_Down)
{
if (R.app_status != POW_OFF)
{
R.app_status = WIFI_CONFIG;
s->Key3_handled = 1;
}
}
}
}
}
else if (L2_ReadKey1() == Key_Down)
{
if (s->Key1_handled == 0)
{
s->Key1_handled = 1;
L2_WT2605B_VioceUp(); // 音量增加
}
}
else if (L2_ReadKey2() == Key_Down)
{
if (s->Key2_handled == 0)
{
s->Key2_handled = 1;
L2_WT2605B_VioceDown(); // 音量减少
}
}
else
{
s->Key3_Down_Begin_Time = 0;
s->Key1_handled = 0;
s->Key2_handled = 0;
s->Key3_handled = 0;
}
L2_task_go_Tdelay(D_task_KEY_DETECT,D_Tdelay_300ms);
TTSS_Task_end();
}