本帖最后由 xyz549040622 于 2018-12-20 19:41 编辑
- void Key_Scanf(void)
- {
- static uint8_t uKey_State = 0;//
- static uint16_t uKey_Hold_Time = 0;//
- uint8_t TKeyValue = 0x00;
- switch(uKey_State)
- {
- case 0:
- TKeyValue = GetKeyPort();
- if(TKeyValue != No_Key_Press1)//
- {
- u8GKey_Value = TKeyValue;//
- uKey_State++;//
- }
- break;
- case 1:
- TKeyValue = GetKeyPort();
- if(TKeyValue != No_Key_Press1)//
- {
- if(TKeyValue&&u8GKey_Value)//
- // if(TKeyValue == u8GKey_Value)
- {
- uKey_Hold_Time++;//
- if(uKey_Hold_Time >= 0)//
- {
- uGKey_Pressed = TRUE;//
- uKey_State++;//
- }
- else
- {
- uKey_State = 0;//
- u8GKey_Value = No_Key_Press1;
- }
- }
- else//
- {
- uKey_State = 0;//
- u8GKey_Value = No_Key_Press1;
- }
- }
- else //
- {
- uKey_State = 0;//
- u8GKey_Value = No_Key_Press1;
- }
- break;
- case 2: //
- TKeyValue = GetKeyPort();
- if(TKeyValue != No_Key_Press1)//
- {
- if(TKeyValue == u8GKey_Value)//
- {
- uKey_Hold_Time++;//
- if(uKey_Hold_Time >= 200)//
- {
- u8GKey_Pressed_1s = TRUE; //
- uKey_State++;//
- }
- }
- }
- else//
- {
- uKey_State = 4;//
- }
- break;
- case 3://
- TKeyValue = GetKeyPort();
- if(TKeyValue != No_Key_Press1)//
- {
- if(TKeyValue == u8GKey_Value)//
- {
- uKey_Hold_Time++;//
- if(uKey_Hold_Time >= 600)//
- {
- u8GKey_Pressed_3s = TRUE;
- uKey_State++;//
- }
- }
- }
- else//
- {
- uKey_State = 4;//
- }
- break;
- case 4: //
- TKeyValue = GetKeyPort();
- if(TKeyValue == No_Key_Press1)//
- {
- uKey_State = 0;//
- uKey_Hold_Time = 0;
- u8GKey_Value = No_Key_Press;
- }
- break;
- default :
- break;
- }
- }
|