單片機遇到需要同時處理的多個任務怎麼辦?

張天承


1、如果任務不是很多的業務場景,可以通過搭建一個簡單的時間片調度框架來處理。比如一個任務採集adc數據、一個任務處理數據,一個任務串口通信。你可以用一個定時器設定時間,每個任務分配一個固定的時間片,比如2ms,運行完畢就跳轉到下一個任務運行,不斷循環,大概思路就這樣,比較簡單的場景足以應付了,如果需要詳細的設計過程可以關注我,我的文章會詳細講解如何設計這樣一個系統。

2、對於場景比較複雜的情況,例如需要任務間不斷交換數據,就需要使用嵌入式操作系統了,單片機上用的多的無非是FreeRTOS、uCos等等,這幾個操作系統大同小異,想要學習的同樣可以看我之前的文章。


編程鎮魔司


單片機可以按分時、順序、中斷的方法處理多個任務

程序是非常抽象的,程序質量的好與差直接影響到運行的效果。我們用單片機設計電子產品時,同時運行多個任務是很正常的。單片機是按順序執行指令的,所以,主程序也是按著順序從頭到底的運行的。以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。

歡迎關注@電子產品設計方案,一起享受分享與學習的樂趣!關注我,成為朋友,一起交流一起學習

  • 記得點贊和評論哦!非常感謝!

電子產品設計方案


單片機遇到需要同時處理多個任務的時候怎麼辦?這個時候就需要用到中斷系統了。中斷是處理多任務操作的首選。

當你在根據任務要求規劃單片機程序設計時,需要規劃好哪些任務需要優先處理,哪些可以次要處理,分配中斷優先級即可。



單片機是單個核心(包括一個運算器、一個控制器)的一種芯片,執行指令是順序執行,一個指令一個指令的讀取計算執行,他不可能同時處理其他指令。所以說單片機的多任務處理就是指的中斷處理。

任務處理程序根據中斷產生的優先級按高到低依次處理不同的任務,完成相應的動作或功能,以達到我們所需要的功能。



由於單片機的處理速度很快,所以執行中斷任務的速度也是很快完成的,這樣看起來就好像是同時處理多任務了,所有的功能都實現了。


工控電子愛好者


單片機只有一個CPU,一次只能執行一條指令,要處理多任務,相當於多個任務同時執行,只有靠分時。

如果沒有實時操作系統,自己做多任務處理很難的。

如果是採集通信數據處理輸入輸出這樣的常規任務,可以採用中斷方式,中斷服務程序處理實時任務,分析計算等任務放入主程序中。

多任務協調,可用狀態自動機模型處理。


散居獵人


普通單片機內部只有一個核,只能順序執行指令,同一時刻不能並行執行多條指令。

所謂的多任務,也是分時執行實現的。只是任務切換的非常快,人感覺不滿任務的切換,像同時執行一樣。

單片機要執行多任務,可以使用中斷的方式,也可以使用操作系統,目前有一些適用於單片機的小型操作系統。


新能源BMS


單片機程序,一個基本的寫法就是要人為構建時序。一般就是拿一個定時器以1ms或者5ms或者10ms持續中斷,在中斷裡面進行計數,每個任務都配一個計數器,然後回主程序判斷。這樣程序才會寫的僅僅有條。實時性高的用中斷。


準備吃飯


上rtos,每個任務專心做自己的,不用考慮時間片輪轉,rtos幫你調度。自己寫累死了,大程序不能放中端服務裡,任務多了需要手工設置時間片,麻煩死了。


野人幫幫主


單片機那麼便宜,多弄幾個,全都跑while(1)[呲牙]


味冷


像這樣的要求,就必須用消息驅動的方式,非阻塞是整個結構,配合狀態機和優先級,基本可以完成。這就要求你要模擬系統的架構來實現。


分享到:


相關文章: