| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156 |
- /************************************************************************
- * ---- 居加居 ----
- * 文件名: Keys.c
- * 编写人员: Kinve JQ
- * 说明:
- * 版本: V0.1
- * 编写日期: 2018-09-30
- * 程序维护:
- * 维护记录:
- * 2018-09-30.Kinve:1.创建文件
- * 免责声明:
- * (c) Author Kinve JQ. All rights reserved.
- **************************************************************************/
- #include "Keys.h"
- #include "Delay.h"
- #define delay_ms(ms) Timer3_Delay1ms(ms)
- /********************************方式2*******************************/
- u8 GetKey_CS(void)
- {
- return !P05; //按下
- }
- u8 Fast_Check_CS(void)
- {
- if(GetKey_CS()){
- delay_ms(20);
- if(GetKey_CS()){
- return 1;
- }
- }
- return 0;
- }
- 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 ********/
|