/** * @File: Keys.c * @Author: Kinve JQ * @Version: V0.1 * @Date: 2018.09.30 * @Brief: * @Modify: 2018.09.30.Kinve:1.创建文件 **/ #include "Keys.h" /********************************方式2*******************************/ u8 GetKey_CS(void) { return !P17; //按下 } volatile pKey Keys[KEY_MAX] = { {KEY_CS, GetKey_CS, KEY_UP_FLAG, 0, 0, 0, NO_KEY_FLAG}, }; void Keys_Even(void) //20ms { u8 i; for ( i = 0; i < KEY_MAX; i++ ) { if ( Keys[i].GetKey() ) { Keys[i].DnTime++; if ( Keys[i].DnTime == CANCEL_KEY_DOWN ) //80ms { Keys[i].Res = ONE_HITS_KEY_FLAG; } else if ( Keys[i].DnTime == LONG_KEY_DOWN ) //3秒,长按 { Keys[i].Res = LONG_KEY_FLAG; } } else { Keys[i].DnTime = 0; } } } void Key_CS_Hanlder(void); void Key_CS_Long_Hanlder(void); void Key_JS_Hanlder(void); void Key_JS_Long_Hanlder(void); void Keys_All_Handler(void) { if(Keys[KEY_CS].Res == ONE_HITS_KEY_FLAG) { Keys[KEY_CS].Res = NO_KEY_FLAG; Key_CS_Hanlder(); } else if(Keys[KEY_CS].Res == LONG_KEY_FLAG) { Keys[KEY_CS].Res = NO_KEY_FLAG; Key_CS_Long_Hanlder(); } } /****************************按键处理***********************************/ void Key_JS_Hanlder ( void ) { #if 0 if ( SysRunType == SysRun_Norm ) { StopBeep(); } #endif } #if 0 void soft_reset(void) { ((void (code *) (void)) 0x0000) (); } #endif void Key_CS_Hanlder ( void ) { #if 0 switch ( SysRunType ) { case SysRun_Norm: SysRunType = SysRun_Test; sysLed_Set ( LED_MODE_TEST_RUN ); break; case SysRun_Test: SysRunType = SysRun_Norm; sysLed_Set ( LED_MODE_WORK_RUN ); break; } Fas_Param_Of_Mode_Change ( SysRunType ); #endif } void Key_JS_Long_Hanlder ( void ) { } void Key_CS_Long_Hanlder ( void) { } void WaitKey_GotoTest ( void ) { #if 0 static bool Can_enter_Factory = TRUE; if ( sys_rtc_time <= 10 ) //启动10秒内,按下Key_CS { if ( Can_enter_Factory ) { Can_enter_Factory = FALSE; SysRunType = SysRun_Test; sysLed_Set ( LED_MODE_TEST_RUN ); } } #endif } /********************* (C) COPYRIGHT Kinve JQ *******END OF FILE ********/