單片機可以按分時、順序、中斷的方法處理多個任務。
程序是非常抽象的,程序質量的好與差直接影響到運行的效果。我們用單片機設計電子產品時,同時運行多個任務是很正常的。單片機是按順序執行指令的,所以,主程序也是按著順序從頭到底的運行的。以C語言寫的單片機程序為例,一般以main()作為主函數,利用while(1)不斷循環要執行的任務程序。在實時性要求不同的應用場合,順序運行就可以了,實時性要求很高的任務一般用中斷來處理,如果想平衡各個任務的運行時間,可以分時處理。
中斷處理實時性高任務
中斷可以理解為中途打斷,比如你正在工作,突然領導來電話了,當你認為領導電話比較重要的時候,就可以先保存正在進行的工作進度,接聽領導電話,然后再接著你的工作。單片機程序也是一樣的。高優級的任務可以設置為中斷,比如按鍵輸入中斷或者串口接收中斷。以串口接收中斷為例,假如單片機配置了串口接收中斷,當串口接收到數據時,主程序就會被打斷,保護現場數據后馬上跳到串口接收中斷程序,串口接收中斷程序處理完成后,再返回主程序接著運行。
分時處理多個任務
可以用分時的方案平衡各個任務的處理時間,比如,我們可以引入一個計數器i,假如有5個任務,可以讓i在0~4之不斷循環,當i=0時執行任務1,當i=1時執行任務2,當i=3時執行任務4,當i=4時執行任務5就可以了。
當然,你還可以用定時器中斷做一個計時器,0~1ms時運行任務1,1~2ms時運行任務2,2~3ms時運行任務3,3~4ms時運行任務4,4~5ms時運行任務5。如果有更高的要求的話,還要以用到嵌入式操作系統了,比如FreeRTOS、uCos。
-
單片機
+關注
關注
6063文章
44914瀏覽量
646788
發布評論請先 登錄
什么是單片機的ADC接口
單片機的中斷機制
低功耗8位單片機:技術特性與應用前景!
8位單片機,32位單片機編程和應用優勢
單片機io口輸出電流多大
單片機STM32可以用Python寫嗎?可以的開發板有哪些?

評論