关于按键问题~求大神

2020-01-30 13:35发布

我要做的是用按键设置时间:
有两个按键key1和key2:当按key1时,调用delay_1s,再按key1时,调用delay_2s,再按key1,调用delay_3s······
                                  当按key2时,比如按key1到了delay_5s,这时候我需要按key2递减。

void key()
{
     if(key_number==1)
     {
         应该怎么调用啊。。
    }
     if(key_number==2)
     {
        应该怎么调用。
     }
}

void  delay_1s()
{}

void delay_2s()
{}

......

谢谢大神帮忙~~
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
zjk
1楼-- · 2020-01-30 14:37
本帖最后由 zjk 于 2013-5-14 16:31 编辑

LZ 可以设置一个变量,通过两个按键判断变量的奇偶性,打比方,按键1时判断偶数时,变量自加一,奇数则变量不变;按键2时判断偶数时变量不变,,奇数则变量自加一;同时在按键2的程序里记得判断,若变量大于4,则变量自减一,然后用switch语句根据变量的值去调用你那些延时函数,大概就这么个思路吧。。。。还有好多其他方法,LZ多想想就行了
wangzeyu315
2楼-- · 2020-01-30 17:24
zjk 发表于 2013-5-14 16:29
LZ 可以设置一个变量,通过两个按键判断变量的奇偶性,打比方,按键1时判断偶数时,变量自加一,奇数则变量 ...

大神:
                                                uchar setstate;
                                                if(key_numer=1)
                                                {
                                                   setstate=2;
                        switch(setstate)
                        {
                                case 1:delay_100ms();
                                break;
                                case 2:delay_200ms();
                                break;
                                case 3:delay_300ms();
                                break;
                                case 4:delay_400ms();
                                break;
                                case 5:delay_500ms();
                                                }
                                             }

我开始直接显示200ms的  然后按key1的时候,为什么没有显示啊。。(这几个函数我都写了显示)
xiaobendan001
3楼-- · 2020-01-30 17:58
把 setstate=2
改成if(setstate<5)setstate++;
另外一个按键中类似的if(setstate>1)setstate--;
xiaopang1118
4楼-- · 2020-01-30 23:06
用标志位flag,
xiaopang1118
5楼-- · 2020-01-31 02:40
 精彩回答 2  元偷偷看……
himan
6楼-- · 2020-01-31 03:19
直接flag  delay-1s(flag*1000) 对flag进行操作

一周热门 更多>