高级会员

- 积分
- 727
- 金钱
- 727
- 注册时间
- 2011-11-12
- 在线时间
- 151 小时
|
发表于 2019-2-1 13:31:37
|
显示全部楼层
//硬件按键编码
//以上述20键为例(最大暂支持32键,对于键少的系统 KeyS_Type可定义为u16或u8)
KeyS_Type GetHalKeyCode(void)
{
KeyS_Type ktmp=0;
if(!KB_RIGHT_IN) ktmp|=1<<KB_RIGHT;
if(!KB_DOWN_IN) ktmp|=1<<KB_DOWN;
if(!KB_LEFT_IN) ktmp|=1<<KB_LEFT;
if(!KB_UP_IN) ktmp|=1<<KB_UP;
//扫描行列式键盘
KEY_OUT_LINE_NULL;
KEY_OUT_LINE1;
ktmp |= KEY_IN0<<4; //或者直接KEY_IN>>4
KEY_OUT_LINE_NULL;
KEY_OUT_LINE2;
ktmp |= KEY_IN0<<8; //或者直接KEY_IN
KEY_OUT_LINE_NULL;
KEY_OUT_LINE3;
ktmp |= KEY_IN0<<12; //或者直接KEY_IN<<4
KEY_OUT_LINE_NULL;
KEY_OUT_LINE4;
ktmp |= KEY_IN0<<16; //或者直接KEY_IN<<8
return ktmp;
}
楼主大神,上面的代码看的还不是很明白,一行对应的一列,我的是4*5的矩阵键盘,第5列怎么处理呢?请指教下,谢谢!@warship |
|