標題: 關(guān)于51單片機多任務的疑惑? [打印本頁]

作者: 4758866    時間: 2024-1-7 16:52
標題: 關(guān)于51單片機多任務的疑惑?
比如一個模塊的使用,要時序,讀寫數(shù)據(jù)的時候需要延時后才能操作,這個等待時間不能用delay了嗎?多個模塊都需要這種延時怎么辦?如果一個模塊1MS執(zhí)行一次,另一個10MS執(zhí)行一次,10MS的模塊等待期間可以執(zhí)行1MS的,執(zhí)行完了到了10ms模塊怎么接著剛才10MS模塊的下一步?同時1MS的時間也到了,這樣會沖突嗎?另外這樣原來調(diào)試好的模塊全部要改?

作者: 3485203305    時間: 2024-1-7 20:01
一般運用定時器來進行時序操作,在進行定時操作時,誰的優(yōu)先級高就先進行高優(yōu)先級的中斷,你試試用定時器來做定時操作就知道了
作者: 3485203305    時間: 2024-1-7 20:05
你試試用中斷來進行延時再進行中斷程序,這樣通過定時器的優(yōu)先級就解決了哪個程序先運行哪個程序后運行的問題了
作者: 3485203305    時間: 2024-1-7 20:06
你試試用中斷來進行延時再進行中斷程序,這樣通過定時器的優(yōu)先級就解決了哪個程序先運行哪個程序后運行的問題了
作者: 3485203305    時間: 2024-1-7 20:07
你試試用中斷來進行延時再進行中斷程序,這樣通過定時器的優(yōu)先級就解決了哪個程序先運行哪個程序后運行的問題了
作者: 3485203305    時間: 2024-1-7 20:07
你試試用中斷來進行延時再進行中斷程序,這樣通過定時器的優(yōu)先級就解決了哪個程序先運行哪個程序后運行的問題了
作者: mtt661    時間: 2024-1-7 20:15
定時器啊,到時間執(zhí)行某個東西
作者: Hephaestus    時間: 2024-1-8 00:42
在定時中斷里面把要執(zhí)行的任務排個隊。
作者: IdeaMing    時間: 2024-1-8 09:15
只要是有中斷的程序,你都不能保證絕對的實時。實時只是相對一個調(diào)度周期。講的是反應速度快。如果一個任務優(yōu)先級高,那其他任務就得讓道。所以高優(yōu)先級任務一個要快速處理,一個要頻度低。
作者: qidiao007    時間: 2024-1-8 11:16
模塊的延時非常短的  都是微秒級別的 對整個程序影響不大
作者: Hephaestus    時間: 2024-1-8 12:24
qidiao007 發(fā)表于 2024-1-8 11:16
模塊的延時非常短的  都是微秒級別的 對整個程序影響不大

那是你見過的模塊太少了。
作者: 4758866    時間: 2024-1-8 12:44
我看了一下RXT51的操作系統(tǒng),是用了操作系統(tǒng)的延時,MS級的就用系統(tǒng)延時,us級的就用delay,不知道這樣理解對不對?
作者: lksbbs    時間: 2024-1-8 16:16
可以做一個系統(tǒng)運行時間變量嘛,定時器讓這個變量增加x,具體增加多少取決于定時器跑了多久,
后面查詢這個時間變量,到了就運行某程序,在某程序運行完畢后,再把運行用掉的時間加入系統(tǒng)運行時間變量,這樣時間就是絕對的。。
作者: 4758866    時間: 2024-1-8 21:45
lksbbs 發(fā)表于 2024-1-8 16:16
可以做一個系統(tǒng)運行時間變量嘛,定時器讓這個變量增加x,具體增加多少取決于定時器跑了多久,
后面查詢這 ...

這個難度有點大,我先看下那個操作系統(tǒng),試一下




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1