打印

按键分析

[复制链接]
1578|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
victor3l|  楼主 | 2012-5-11 10:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
下面是我写的一个键盘检测程序。键盘的底层是用状态机写的,这里没10毫秒扫描一次。
问题是: 键盘只能检测到key_long_set这里,进去后,key_lshort_left,key_short_up都检测不到这是什么问题啊?
         是不是在我按下key_long_set之后的10毫秒里没有按下其他键,他就不检测了?
        还有就是if(keyValue == key_long_set)条件成立的情况下,它里面的内容只执行一次还是一直停在里面了?(这个问题一直困扰我好久)
        
请大家斑斑我分析下,谢谢。




        if(Time10Ms)
        {
                Time10Ms = 0;
                keyValue = read_key_n();        
        }

        if(keyValue == key_long_set)
        {
                InputCode();
                if(keyValue == key_short_left )        
                        {
                                codeWei++;
                                if(codeWei > 5)
                                        {
                                                codeWei = 0;
                                        }        
                        }
                switch(codeWei)
                {
                        case 0:
                                {
                                        if(keyValue == key_short_up)
                                                code5++;
                                        if(code5 > 9)
                                                code5 = 0;
                                } break;
                        case 1:
                                {
                                        if(keyValue == key_short_up)
                                                code4++;
                                        if(code4 > 9)
                                                code4 = 0;        
                                }break;
                        case 2:
                                {
                                        if(keyValue == key_short_up)
                                                code3++;
                                        if(code3 > 9)
                                                code3 = 0;        
                                }break;
                        case 3:
                                {
                                        if(keyValue == key_short_up)
                                                code2++;
                                        if(code2 > 9)
                                                code2 = 0;        
                                }break;
                        case 4:
                                {
                                        if(keyValue == key_short_up)
                                                code1++;
                                        if(code1 > 9)
                                                code1 = 0;        
                                }break;
                        default:break;
                }

相关帖子

沙发
amwrdfe| | 2012-5-11 12:01 | 只看该作者
if(keyValue == key_long_set)
看看你的括号括到哪里去了~。
case的括号没必要加,看得人眼花。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

77

主题

308

帖子

5

粉丝