⑴ 單片機怎麼實現多任務延時
什麼叫「多任務延時 」?,是不是在延時的時候,其它程序正常運行?如果這樣的話,可以使用定時器中斷實現。假如定時器每50毫秒中斷一次,你定義一個全局變數(C51),在每次執行中斷函數時給它加一,想延時多長時間都可以。
補充:
找出四種波半個周期時間的最大公約數,按你給的四個波,最大公約數就是450HZ的半個周期時間,即1.11毫秒,將定時器的中斷周期設定為該時間,申明四個全局變數或靜態變數,初值均為0,每次中斷時四個變數均加一。第一個變數加到18(20/1.111=18)時讓其變為0,同時輸出25HZ方波的單片機腳反向。第二個變數其實不用加,每次中斷都讓輸出450HZ方波的單片機腳反向。第三個變數加到315(350/1.1111=315)時讓其變為0,同時輸出0.7S方波的單片機腳反向。當第四個變數為0時,讓單片機腳為高,第四個變數為900(1000/1.1111=900)時,讓單片機腳為低,當它為4500(5000/1.1111=315)時,讓其為0,當然,這些變數都必須是整型數。
採用這樣的方法,其它程序正常運行,當然,如果還有其它中斷的話,你必須把定時器中斷的優先順序設為最高。
我不知道你用的是什麼單片機,所以無法給你寫程序。
⑵ 怎麼用51單片機實現多任務操作系統
自己寫一個操作系統唄 如果你用的單片機達到多任務要求的 多任務就是將任務進行分類然後要要求給他安排執行的順序 如果任務簡單任務少 可以自己寫寫 復雜的話 就用ucos吧 開源 又是實時系統 可以滿足你的要求
⑶ 單片機多任務編程思路
單片機多任務編程的話一般都是可以調數據,然後分程序來編程。
⑷ 51單片機怎麼多任務通信
51單片機速度不是很快,做一個任務比較合適,多任務會力不從心,如果要做的話,必須用操作系統來做,不過效果也不會太好的。
⑸ 51單片機如何實現多線程多任務有哪些程序可以在「後台」自己運行
51單片機可以實現執行時間片形式的多線程任務,具體做法是:1、弄個表兩位元組一個單位存一下各個任務的執行地址。2、在中斷級別較高的T0定時器中斷中,把中斷壓進堆棧的那兩個位元組保存到表裡。3、用表裡別的線程的地址重壓進堆棧。4、從中斷里退出就可以切到另一個線程繼續跑了。
我記得這個在早先2000年那時候的大學計算機系單片機原理專業課里講過,但是那科掛掉的實在太多,現在好像已經把這些獨門絕技大多給砍沒了,就剩背背匯編指令集。
⑹ 單片機開發板如何實現多任務一起運行
每一項任務只需要分配一個小時隙就執行了,然後一直循環,再加些任務進去也是沒問題的。
最後要注意的是每項任務的耗時,盡量精簡優化。
⑺ 單片機中如何實現多線程,多任務
可以將不同任務放在定時器中斷里, 然後將任務分步驟執行(這大概就叫狀態機吧). 比如任務1放在主循環里, 任務2放在定時器1中斷里, 任務3放在定時器2中斷里. 或者自己利用定時器實現時間片輪換演算法. 關鍵是分配好任務執行的時間片, 以滿足對不同事件的響應. 感覺單片機實時性的要求很高。
⑻ 還是單片機多任務
什麼意思?要是驗證代碼正確性,用KEIL環境軟體模擬就可以了,但是要保證外存區2000H地址是能被鎖存的,要不然觀察不到數據。而且你那個^=的操作會產生什麼結果還真說不好。
……
os_wait(K_TMO,20,0);
P1 = 0x01;
……
os_wait(K_TMO,40,0);
P1 = 0x02;
……
好觀察
⑼ 單片機多任務並行運算的任務吞吐量分析;單片機多任務並行運算適用哪些應用。
以下是單片機實踐團為您解答:
1)單片機多任務並行運算任務吞吐量分析,這個話題有點大,我只能簡單的說幾點,到時候你自由發揮吧。
2)多任務作業系統,對於微控制器而言,其實不能達到所謂的並行運行,只是感覺上像是並行處理一樣,也就是所謂的時間片輪詢調度,如果任務優先順序一樣則每個任務分得的時間片一樣。對於搶占式的RTOS而言會優先處理級別比較高的任務。
3)說道任務的吞吐量的話,一般OS都會帶這樣的一個介面供用戶調用,我所知道的FreeRTOS的話,有個tasklist的介面,可以列印任務的列表還有個潤time相關的API是vTaskGetRunTimeStats這個函數就能列印系統的任務吞吐量,很形象,就是每個任務占的百分比一般基本上是空閑任務佔用了90%以上,我一般設計到99%這樣。
4)當然了,這些OS還會提供圖形化的分析工具,我所了解的FreeRTOS支持trace介面工具能夠直觀的通過圖形圖表看出每個任務的吞吐量,一般用於前期設計分析。
5)恩,如果OS不提供這種介面的話,可以動手寫相關的介面,便於設計時分析用
6)說到多任務並行運算適用哪些應用的話,這個需要你對系統比較了解的情況才能懂一些,我也簡單說明,傳統的前後台任務作業系統在任務處理的時候是順序執行的,或者後台事件觸發執行,相比之下多任務並行執行(不是真的並行,真正並行的只有FPGA或者多核才能做的)的作業系統優勢明顯,因為我們的系統run起來很快的,但是我們的外設一般都比較慢,所以需要花很多時間去等待完成或者其他的阻塞執行,這樣無形中浪費了系統的資源,常常會使得有些任務得不到及時的執行,在多任務並行執行的系統就避免了這種情況。
7)舉例說明,一個系統有串口發送任務,還有個採集任務,一般串口速率都不是很高,發送的任務明顯會比較慢,需要等待發送空,這樣的話發送若干數據的時間其實相對系統執行的速率而言是很長的,如果是非並行執行的作業系統的話,需要等待發送完成才能執行採集任務,這樣明顯使得採集任務不夠實時,所以在並行執行的作業系統中,兩者都能很好的被執行,干一會這個任務,干一會那個任務,多和諧。
8)說白了,這些都是實時操作系統RTOS的基礎知識,看看相關的文獻,有利於你明天發揮,祝好運,歡迎追問。
⑽ MCS-51單片機能同時執行多少個任務
51單片機,在某一瞬間,只能執行一個任務,不可以執行多任務。當然,可以進行分時多任務處理。