Arduino 多任務(wù)庫(時(shí)間片輪換實(shí)現(xiàn))
2023-04-13 13:20 作者:會(huì)飛的豹豹豹 | 我要投稿
Arduino 多任務(wù)庫(時(shí)間片輪換實(shí)現(xiàn))
Arduino 多任務(wù)庫
Arduino基于定時(shí)器的多任務(wù)庫,基于
millis()
函數(shù),由millis()函數(shù)+單項(xiàng)鏈表運(yùn)行
基本結(jié)構(gòu)為
單項(xiàng)目多次使用單模塊編寫,代碼冗雜,直接封裝成庫使用,以提高代碼可讀性。
注意:
此庫理論是基于時(shí)間片切換實(shí)現(xiàn)多任務(wù)。因?yàn)閱魏薱pu只能單線程運(yùn)行(同一時(shí)刻只能做一件事),所以是偽多任務(wù)。
此庫是根據(jù)時(shí)間片來切換任務(wù),只實(shí)現(xiàn)了偽多任務(wù)。
此庫任務(wù)內(nèi)盡量不使用delay()函數(shù)來阻斷函數(shù)運(yùn)行,而且目前沒有有效解決辦法。
目前沒有測試此庫任務(wù)個(gè)數(shù)的極限數(shù),理論來說會(huì)有一個(gè)極限值。
目前沒有測試此庫時(shí)間片最小間隔值,理論來說會(huì)有一個(gè)極限值。
此庫可能有其他未知錯(cuò)誤,請(qǐng)各位大神多多指教。
Arduino_Task.h
Arduino_Task.cpp
使用方法
關(guān)于此庫如何添加到Arduino IDE
直接新建文件到與ino源文件相同目錄,然后雙擊ino文件打開即可
標(biāo)簽:Arduino