//////////////////////////////////////////////////////////////////////////// ///@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; L0_uart0_uc('1'); L2_WT2605B_VioceUp(); // 音量增加 } } else if (L2_ReadKey2() == Key_Down) { if (s->Key2_handled == 0) { s->Key2_handled = 1; L0_uart0_uc('2'); 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(); }