應廣驅動框架_第二章 時間片機制,不一樣的按鍵掃描

       一直忙的顧頭不顧腚的,今天終於可以抽出一點時間了,繼續我們未完的約定~

       依稀記得上大學那會可親的老師教授鍵盤檢測要防抖,講述了防抖原因並給出了精心準備的例子。作爲一個呆傢伙,我居然真用這種編程方法參加了工作.......

        你也許在想:是啊,是這麼教的呀,書上也是這麼寫的呀,有問題?沒有問題,但你有沒有想過,這10ms實際上對單片機是一種巨大的浪費,當程序需要同時運行多個需求的時候會捉襟見肘。下面我們就進入本章重點:時間片機制,拒絕死等!

        1. 配置好250us中斷,1ms計時。注意變量SpeedCon_Num。

         2. main函數中構建while(1)主循環。主循環裏同時運行了多個任務:按鍵掃描、LED閃爍、睡眠計時、睡眠檢測等。每8ms爲一輪,輪流調用每個函數。注意變量SpeedCon_Num。

        3. 編寫按鍵掃描程序。仔細看看會發現這種按鍵掃描根本沒有“死等10ms”,而是採用變量計時,每8ms掃描一次按鍵,防抖24ms,滿足條件則確認按鍵觸發。這段按鍵掃描代碼所耗費的時間不會超過50us。

        綜上,採用時間片機制後大大減少了單片機的空轉,提高了利用率,能對外界做出更快更好的響應。小小拋磚引玉,等你來戰哦~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章