本帖最后由 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;
}
}
|