C语言《检测按键》
記錄一下按鍵檢測的快速算法
typedef struct {uint16_t u16Value;//key valueuint16_t u16Trg;//triger uint16_t u16Cont;//continuebool boolPressed;uint16_t u16Release;//releasebool boolReleased; }KEY_INFO;u16Trg : 表示按鍵按下的狀態(tài)
u16Release :表示釋放的狀態(tài)
u16Cont :按鍵值
1.檢測
//1.get key is pressed value. u16Value = u16Value & DE_KEY_ALL; //2.triger pressed g_KeyInfo.u16Trg = u16Value & (u16Value ^ g_KeyInfo.u16Cont); //3.triger released g_KeyInfo.u16Release = u16Value ^ g_KeyInfo.u16Trg ^ g_KeyInfo.u16Cont; //4.the key countinue press g_KeyInfo.u16Cont = u16Value;2.處理
static void Key_Process(void) {//get the key releasedif(g_KeyInfo.u16Release){g_KeyInfo.u16Value |= g_KeyInfo.u16Release;}//key pressedif(g_KeyInfo.u16Cont){g_KeyInfo.boolPressed = TRUE;}//key releasedif((!g_KeyInfo.u16Cont)&&(g_KeyInfo.boolPressed)){g_KeyInfo.boolPressed = FALSE;g_KeyInfo.boolReleased = TRUE;} }傳值
if(g_KeyInfo.boolReleased)
{
return g_KeyInfo.u16Value;
}
總結(jié)
- 上一篇: Gurobi笔记(使用手册)
- 下一篇: 天眼查一年 可查询导出代导自动发货下载