本文來源電子發燒友社區,作者:ankor, 帖子地址:https://bbs.elecfans.com/jishu_2292363_1_1.html
corvette T1多任務調度學習
本文嘗試實現corvette T1開發板的多任務協作功能
多任務協作功能可以使用freeRTOS、RT-thread一類實時操作系統實現,也可以使用中斷、任務調度器來實現這些功能在arduino中也都支持,因為并不清楚T1開發板支不支持實時操作系統所以本次暫不采用實時操作系統來實現(英文太差,不太看的懂手冊QAQ,而且說明文檔好像也沒提這事?)。
最后我選擇了任務調度器來實現T1開發板下的多任務調度,主要用到TaskScheduler這個庫,在管理庫中搜索并安裝即可。
先演示下其中的示例,打開個庫中的Scheduler_example00_Blink這個示例,操作步驟:文件→示例→TaskScheduler→Scheduler_example00_Blink,如下圖。
修改LED_BUILTON為13
?
修改前
修改后
然后上傳即可看到開頭視頻中的演示效果了。
多任務調度學習
然后又跟下面這位大佬的教程學習了多任務調度的操作(其實主要是學明白他的操作,自己還是太菜了QAQ)
(42條消息) Arduino|實現多任務操作,從此告別果奔6柒的博客-CSDN博客arduino多任務并行
首先是聲明自己的回調函數
void t1Callback();
void t2Callback(); void t3Callback();
然后創建任務也就是Task的創建
Task t1(2000, 10, &t1Callback);//創建任務對象,內部參數為延遲時間,任務生存時間(s),任務的回調函數地址
Task t2(3000, TASK_FOREVER, &t2Callback);//回調函數主要是實現任務功能的 Task t3(5000, TASK_FOREVER, &t3Callback);
然后是調度器的創建,主要負責收納、執行和刪除這些任務的
Scheduler runner;
然后根據對象runner區訪問類的成員函數
runner.init();
runner.addTask(name);//添加name任務,name為上面的Task 如t1或t2或t3 runner.deleteTask(name); runner.execute();
更多的細節可以參考上面那篇文章,最后是T1開發板使用該文提供的代碼跑出來的效果。
// Callback methods prototypes void t1Callback(); void t2Callback(); void t3Callback();
//Tasks (delay_ms,times,func) Task t4(); Task t1(2000, 10, &t1Callback); Task t2(3000, TASK_FOREVER, &t2Callback); Task t3(5000, TASK_FOREVER, &t3Callback);
Scheduler runner;
void t1Callback() { Serial.print("t1: "); Serial.println(millis());
if (t1.isFirstIteration()) { runner.addTask(t3); t3.enable(); Serial.println(34;t1: enabled t3 and added to the chain34;); } if (t1.isLastIteration()) { t3.disable(); runner.deleteTask(t3); t2.setInterval(500); Serial.println(34;t1: disable t3 and delete it from the chain. t2 interval set to 50034;); }
}
void t2Callback() { Serial.print("t2: "); Serial.println(millis());
}
void t3Callback() { Serial.print("t3: "); Serial.println(millis());
}
void setup () { Serial.begin(115200); Serial.println("Scheduler TEST");
runner.init(); Serial.println("Initialized scheduler");
runner.addTask(t1); Serial.println("added t1");
runner.addTask(t2); Serial.println("added t2");
t1.enable(); Serial.println("Enabled t1"); t2.enable(); Serial.println("Enabled t2"); }
void loop () { runner.execute(); }
示例展示
以上便是本文的所有內容了
謝謝閱讀。
-
晶心科技
+關注
關注
0文章
104瀏覽量
18243 -
開發板試用
+關注
關注
3文章
301瀏覽量
2150
發布評論請先 登錄
相關推薦
全志T113-S3開發板網絡通信
![全志<b class='flag-5'>T</b>113-S3<b class='flag-5'>開發板</b>網絡通信](https://file.elecfans.com/web2/M00/5D/1D/poYBAGLzEqqAd54TAAAbaJrrfwc915.png)
有獎丨米爾 全志T536開發板免費試用
![有獎丨米爾 全志<b class='flag-5'>T</b>536<b class='flag-5'>開發板</b>免費<b class='flag-5'>試用</b>](https://file.elecfans.com/web2/M00/08/64/pYYBAGDwFEGADIPWAAFlJOlmLxg664.jpg)
如何用OpenCV進行手勢識別--基于米爾全志T527開發板
![如何用OpenCV進行手勢識別--基于米爾全志<b class='flag-5'>T</b>527<b class='flag-5'>開發板</b>](https://file.elecfans.com/web2/M00/08/64/pYYBAGDwFEGADIPWAAFlJOlmLxg664.jpg)
FacenetPytorch人臉識別方案--基于米爾全志T527開發板
![FacenetPytorch人臉識別方案--基于米爾全志<b class='flag-5'>T</b>527<b class='flag-5'>開發板</b>](https://file.elecfans.com/web2/M00/02/C4/pYYBAGDSzfeAP86XAAAO5PbqJbI698.png)
追加名額丨米爾瑞芯微RK3576開發板有獎試用
![追加名額丨米爾瑞芯微RK3576<b class='flag-5'>開發板</b>有獎<b class='flag-5'>試用</b>](https://file.elecfans.com/web2/M00/08/64/pYYBAGDwFEGADIPWAAFlJOlmLxg664.jpg)
【米爾-Xilinx XC7A100T FPGA開發板試用】+01.開箱(zmj)
搭載全志T527芯片的AvaotaA1開發板
![搭載全志<b class='flag-5'>T</b>527芯片的AvaotaA<b class='flag-5'>1</b><b class='flag-5'>開發板</b>](https://file1.elecfans.com/web2/M00/07/4D/wKgaombk5DiAAqqFAAITxankNok740.jpg)
Andes晶心科技推出QiLai系統芯片和Voyager開發板
【米爾首發-全志T527開發板-國產8核A55-免費試用】米爾全志T527開發板上電與連接WIFI
【米爾-全志T113-i開發板試用】米爾-全志T113-i開發板與modbus設備的連接和操作
全志T527國產核心板及米爾配套開發板批量上市!
SO14;SMD卷軸包,13“;Q1/T1產品定位包裝信息
![SO14;SMD卷軸包,13“;Q<b class='flag-5'>1</b>/<b class='flag-5'>T1</b>產品定位包裝信息](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
HSOP8;用于SMD的卷筒干式包裝,13“;Q1/T1產品方向包裝信息
![HSOP8;用于SMD的卷筒干式包裝,13“;Q<b class='flag-5'>1</b>/<b class='flag-5'>T1</b>產品方向包裝信息](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
X2SON5;SMD卷軸包,7“;Q1/T1產品定位包裝信息
![X2SON5;SMD卷軸包,7“;Q<b class='flag-5'>1</b>/<b class='flag-5'>T1</b>產品定位包裝信息](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論