標(biāo)題: 單片機(jī)一個(gè)按鍵控制調(diào)用不同程序的設(shè)計(jì)思路是什么? [打印本頁]

作者: 忍樹    時(shí)間: 2019-1-5 20:06
標(biāo)題: 單片機(jī)一個(gè)按鍵控制調(diào)用不同程序的設(shè)計(jì)思路是什么?
求解一個(gè)按鍵控制調(diào)用不同程序
作者: xuyaqi    時(shí)間: 2019-1-6 10:14
可以用短按與長(zhǎng)按來區(qū)分。
作者: dzbj    時(shí)間: 2019-1-6 10:19
一種方法是聲明n個(gè)標(biāo)記 比如if(flag_1==1)就執(zhí)行 執(zhí)行完畢自己把標(biāo)記清零 有多少個(gè)需要執(zhí)行的就聲明多少個(gè)標(biāo)記
作者: wulin    時(shí)間: 2019-1-6 11:21
本帖最后由 wulin 于 2019-1-6 16:12 編輯

給你一個(gè)單鍵控制多任務(wù)的子函數(shù)示例
void Choice()
{
        static unsigned char i=0;
        unsigned int j;
        if(!Key)//鍵按下
        {
                j=2000;
                while(j--);//按鍵消抖
                if(!Key)//確認(rèn)鍵按下
                {
                        if(++i>n)//按鍵次數(shù)計(jì)數(shù)
                                i=0;
                        while(!Key);//等待按鍵松手
                        switch(i)//多分支執(zhí)行任務(wù)
                        {                        
                                case 0: /*停止所有任務(wù)*/; break;
                                case 1: /*任務(wù)1*/; break;
                                case 2: /*任務(wù)2*/; break;
                                case 3: /*任務(wù)3*/; break;
                                ......
                                ......
                                case n: /*任務(wù)n*/; break;
                        }
                }
        }
}




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1