久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機教程網(wǎng) >> MCU設(shè)計實例 >> 瀏覽文章

單片機按鍵掃描程序 狀態(tài)機方法

作者:huqin   來源:本站原創(chuàng)   點擊數(shù):  更新時間:2014年04月09日   【字體:

#define key_input                PIND.7                        // 按鍵輸入口
#define key_state_0        0
#define key_state_1        1
#define key_state_2        2

char read_key(void)
{
                static char key_state = 0;
                char key_press, key_return = 0;

                key_press = key_input;                                // 讀按鍵I/O電平
                switch (key_state)
                {
                        case key_state_0:                                // 按鍵初始態(tài)
                                if (!key_press) key_state = key_state_1;        // 鍵被按下,狀態(tài)轉(zhuǎn)換到鍵確認態(tài)
                                break;
                        case key_state_1:                                // 按鍵確認態(tài)
                                if (!key_press)
                                {
                                        key_return = 1;                        // 按鍵仍按下,按鍵確認輸出為“1”
                                        key_state = key_state_2;        // 狀態(tài)轉(zhuǎn)換到鍵釋放態(tài)
                                }
                                else
                                        key_state = key_state_0;        // 按鍵已抬起,轉(zhuǎn)換到按鍵初始態(tài)
                                break;
                        case key_state_2:
                                if (key_press) key_state = key_state_0;        //按鍵已釋放,轉(zhuǎn)換到按鍵初始態(tài)
                                break;
                }       
            return key_return;
}

 

 

另外一個原則就是設(shè)計的中斷服務(wù)函數(shù)執(zhí)行時間應(yīng)該盡量的短。這樣假如系統(tǒng)中使用多個中斷的話,就是不采用中斷嵌套的方式,也能夠保證系統(tǒng)能夠及時響應(yīng)各個中斷的請求。

所以我喜歡在定時中斷中只使用一個標志變量,這樣中斷服務(wù)函數(shù)執(zhí)行時間是最快的,就不會阻塞其它中斷的及時響應(yīng),而在主程序中判斷標志變量,然后再去掃描按鍵。盡管此時掃描的間隔已經(jīng)不是嚴格意義上的10ms,或多或少都有一些延誤,而且延誤也是不確定的,但都不會影響按鍵掃描的正確性(一個按鍵的過程至少在300ms以上)。

設(shè)定一個定時器中斷,每隔10MS 掃描一次按鍵。,讀取值。。如果多個按鍵,又有多余的定時器,可以試試這個方法,效率高了。搞STM32 剛好。 cool.

關(guān)閉窗口

相關(guān)文章

主站蜘蛛池模板: 妞干网视频 | 国产精品99久久久精品免费观看 | 国产999在线观看 | 天天操夜夜爽 | 成人在线视 | 午夜小视频在线播放 | 亚洲乱码一区二区三区在线观看 | 久久99精品久久久 | 欧美国产日韩一区 | 欧美精品在线一区二区三区 | 免费视频一区二区 | 国产精品日韩欧美一区二区三区 | 欧美成人第一页 | 超碰520| 久久国产精品免费一区二区三区 | 久草免费在线视频 | 精品产国自在拍 | 伊人网在线综合 | 九九久久精品 | 综合色在线 | 先锋av资源在线 | 性高湖久久久久久久久3小时 | 91在线视频免费观看 | 国产亚洲精品精品国产亚洲综合 | 免费观看视频www | 欧美日韩在线一区二区三区 | 中文字幕免费在线 | 欧美成ee人免费视频 | 亚洲国产aⅴ成人精品无吗 国产精品永久在线观看 | 日本精品久久久久 | 一区二区三区免费 | 婷婷去俺也去 | 欧美婷婷| 日本一卡精品视频免费 | 精品国产一级 | 91久久久久久久 | 九九九国产 | 精品综合久久久 | 成人在线不卡 | 欧美成ee人免费视频 | 91国内外精品自在线播放 |