回覆列表
  • 1 # 野人幫幫主

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

  • 2 # 電子產品設計方案

    微控制器可以按分時、順序、中斷的方法處理多個任務

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

  • 3 # 工控電子愛好者

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

    當你在根據任務要求規劃微控制器程式設計時,需要規劃好哪些任務需要優先處理,哪些可以次要處理,分配中斷優先順序即可。

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

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

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

  • 中秋節和大豐收的關聯?
  • 現在你們孩子都晚上寫作業到幾點?