[問題] RTOS傳參數給Task

看板ASM (組合語言)作者 (liberty)時間7年前 (2017/11/16 01:46), 7年前編輯推噓2(202)
留言4則, 1人參與, 7年前最新討論串1/1
各位板友好 目前在練習RTOS的使用,但是碰上了一些問題 TASK_1每秒偵測開關所代表的數字(1 ~ 5) TASK_2利用TASK_1偵測到的參數,做LED閃爍與延遲 每秒閃1~5次並延遲1~5秒,起初練習時,我用TASK_2-6... 後來想學著用參數的傳遞,這樣應該只需要一個TASK_2, 只是兩個是否都會碰到延遲的問題呢? 因為在判斷參數的更動,我用TASK_1去做,然後傳給TASK_2 當參數改變,TASK_2完成一次loop,可能還會有一段時間, TASK_1發現參數改變,那該如何馬上讓TASK_2做新一輪的任務, 如果在TASK_2加一個判斷式,好像也得loop跑完才能執行。 這樣該如何解決延遲的問題呢? 我有想過刪除再創Orz 也有查到似乎能用Quene或是Event去做? 懇請板友解惑,也希望沒有違反板規,謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.37.176.170 ※ 文章網址: https://www.ptt.cc/bbs/ASM/M.1510767988.A.546.html ※ 編輯: fengwing (114.37.176.170), 11/16/2017 01:50:54

11/17 00:14, 7年前 , 1F
看不太懂你的問題。如果task2 用sleep特定秒數,這樣就是
11/17 00:14, 1F

11/17 00:14, 7年前 , 2F
在blocking state,之後等到秒數到了才回到ready state.
11/17 00:14, 2F
不好意思說明的不太好Orz task1偵測、傳遞參數,以及讓task2 suspended、resume, task2重覆做當下的任務,比如說重覆1秒閃5次、延遲5秒, 會有5種不同的參數被傳進task2,讓task2有5種運作方式, 我想請教當task1隨機時間傳遞不同的參數給task2, 當task2運行到一半的時候,因參數不同,要求task2做任務的切換, task2是不是會將任務的最後一次迴圈做完,然後才會改做新的任務呢? 這樣我該如何讓task2立即中止舊任務,馬上開始做新的任務呢? ※ 編輯: fengwing (118.166.214.149), 11/17/2017 09:13:35

11/17 09:19, 7年前 , 3F
這感覺跟rtos沒什麼關係吧。 你task2在做task時進到一個wh
11/17 09:19, 3F

11/17 09:19, 7年前 , 4F
ile loop 偵測到有新參數時,就break,這樣能解決?
11/17 09:19, 4F
我在學習使用rtos的函數,還不是很熟,所以都用很簡單的例子Orz ※ 編輯: fengwing (118.166.214.149), 11/18/2017 12:15:12
文章代碼(AID): #1Q37rqL6 (ASM)
文章代碼(AID): #1Q37rqL6 (ASM)