更新 button/button.c
This commit is contained in:
@@ -33,20 +33,28 @@ void Button_Scan()
|
|||||||
}
|
}
|
||||||
else // 按键松开
|
else // 按键松开
|
||||||
{
|
{
|
||||||
|
if(button_last_time[i] >= BUTTON_SHORT_PRESS_TIME && button_last_time[i] < BUTTON_LONG_PRESS_TIME) // 短按
|
||||||
|
{
|
||||||
|
if(button_state[i] != BUTTON_SHORT_PRESS_GOT)
|
||||||
|
{
|
||||||
|
button_state[i] = BUTTON_SHORT_PRESS; // 设置为短按状态
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else // 未按下
|
||||||
|
{
|
||||||
|
if(button_state[i] == BUTTON_LONG_PRESS)
|
||||||
|
{
|
||||||
|
button_state[i] = BUTTON_RELEASE;
|
||||||
|
}
|
||||||
|
// button_state[i] = BUTTON_RELEASE; // 设置为未按下状态
|
||||||
|
}
|
||||||
button_last_time[i] = 0; // 持续按下时间清零
|
button_last_time[i] = 0; // 持续按下时间清零
|
||||||
}
|
}
|
||||||
if(button_last_time[i] >= BUTTON_LONG_PRESS_TIME) // 长按
|
if(button_last_time[i] >= BUTTON_LONG_PRESS_TIME) // 长按
|
||||||
{
|
{
|
||||||
button_state[i] = BUTTON_LONG_PRESS; // 设置为长按状态
|
button_state[i] = BUTTON_LONG_PRESS; // 设置为长按状态
|
||||||
}
|
}
|
||||||
else if(button_last_time[i] >= BUTTON_SHORT_PRESS_TIME) // 短按
|
|
||||||
{
|
|
||||||
button_state[i] = BUTTON_SHORT_PRESS; // 设置为短按状态
|
|
||||||
}
|
|
||||||
else // 未按下
|
|
||||||
{
|
|
||||||
button_state[i] = BUTTON_RELEASE; // 设置为未按下状态
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -56,7 +64,21 @@ uint8 Button_Get_State(uint8 button_num)
|
|||||||
{
|
{
|
||||||
return -1; // 返回错误
|
return -1; // 返回错误
|
||||||
}
|
}
|
||||||
return button_state[button_num]; // 返回按键状态
|
uint8 tmp_sta = button_state[button_num];
|
||||||
|
if(button_state[button_num] == BUTTON_SHORT_PRESS)
|
||||||
|
{
|
||||||
|
button_state[button_num] = BUTTON_SHORT_PRESS_GOT;
|
||||||
|
}
|
||||||
|
return tmp_sta; // 返回按键状态
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void Button_Reset(uint8 button_num)
|
||||||
|
{
|
||||||
|
if(button_num >= BUTTON_PIN_NUM) // 按键编号越界
|
||||||
|
{
|
||||||
|
return ; // 返回错误
|
||||||
|
}
|
||||||
|
button_state[button_num] = BUTTON_RELEASE; // 重置按键状态为未按下
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user