目的:为了将所有按钮按下的按钮键值传递,将十进制数转换。例如:获取的按钮的值K1 = 3, K2 =4.,为了封装传递方便,需要显示为34.即:k1 * 16 + K2.如果是K1 = 1; K2 =2; K3 = 3,组合成123.即:1 * 16 * 16 + 2 * 16 + 3.
u32 GetKey()
{
u8 i,j;
u32 tmpkeycode = 0,key = 1;
if(0 != gu8_KeyCode[0])
{ for(i=1; i < (sizeof(gu8_KeyCode)/sizeof(u8)); i++)
{
for(j = 0; j <= i -1 ; j++ )
{
key = key << 4;
}
key = key * gu8_KeyCode[i];
tmpkeycode = tmpkeycode + key;
key = 1;
}
tmpkeycode = tmpkeycode + gu8_KeyCode[0];
}
return tmpkeycode ;
}
本文介绍了一种用于将多个按键值组合成一个整数值的算法,该算法通过位移和乘法操作实现不同按键值间的拼接,适用于嵌入式系统中按键状态的高效传递。
1490

被折叠的 条评论
为什么被折叠?



