3lvictor 发表于 2012-5-14 12:25:45

按键问题

请问:

    我写一个按键函数uchar keyScan()
                   {}
      这个函数能不能在一个源文件中多次调用? 按键函数是10ms扫描一次。我在做菜单,在菜单顶层时该函数消抖很好,但是到了第二季菜单是在调用他时,就出现严重抖动,如果不调用他,就不能对菜单各项进行调整。这种该如何处理啊?

rp_sunday 发表于 2012-5-14 12:31:34

用定时器调用按键函数试试

lxvtag 发表于 2012-5-14 12:39:10

这样描述别人没法帮你解决的,程序结构问题
这个是我单键扫描,支持长短按,长按还可以加上超长按。
每ms调用一次,简单改下就成10ms的。

//================================================
//键盘扫描,10ms消抖,500ms长按
uchar key_scan()
{
        static uint count;              //计数器

        if(!CHECK_KEY)        //有按键
        {
                if(count < 3001)count++;
                if(count == 500)//500ms
                {
                        return 2;                //长按
                }
        }
        else
        {
                if((count >= 10)&&(count < 500))
                {
                        count = 0;
                        return 1;        //短按
                }                                               
                count = 0;
        }
        return 0;
}

Water_Wind 发表于 2012-5-14 20:55:41

楼主去看这个帖子.
http://www.znczz.com/thread-25097-1-1.html
多任务并行处理不用Delay.
另外附个 也超好的文章关于基本的多任务处理的,

3lvictor 发表于 2012-5-16 13:37:47

谢谢以上各位的指点,请问大家有没有做过菜单的啊,说说您们的思路
页: [1]
查看完整版本: 按键问题