早期是函数指针,现在直接将这个封装成一个API了
[C] 纯文本查看 复制代码 /*
*********************************************************************************************************
* 函 数 名: IsKeyDownFunc
* 功能说明: 判断按键是否按下。单键和组合键区分。单键事件不允许有其他键按下。
* 形 参: 无
* 返 回 值: 返回值1 表示按下(导通),0表示未按下(释放)
*********************************************************************************************************
*/
static uint8_t IsKeyDownFunc(uint8_t _id)
{
/* 实体单键 */
if (_id < HARD_KEY_NUM)
{
uint8_t i;
uint8_t count = 0;
uint8_t save = 255;
/* 判断有几个键按下 */
for (i = 0; i < HARD_KEY_NUM; i++)
{
if (KeyPinActive(i))
{
count++;
save = i;
}
}
if (count == 1 && save == _id)
{
return 1; /* 只有1个键按下时才有效 */
}
return 0;
}
/* 组合键 K1K2 */
if (_id == HARD_KEY_NUM + 0)
{
if (KeyPinActive(KID_K1) && KeyPinActive(KID_K2))
{
return 1;
}
else
{
return 0;
}
}
/* 组合键 K2K3 */
if (_id == HARD_KEY_NUM + 1)
{
if (KeyPinActive(KID_K2) && KeyPinActive(KID_K3))
{
return 1;
}
else
{
return 0;
}
}
return 0;
}
|