電子產(chǎn)業(yè)一站式賦能平臺(tái)

PCB聯(lián)盟網(wǎng)

搜索
查看: 88|回復(fù): 0
收起左側(cè)

分享一個(gè)強(qiáng)大的協(xié)同多任務(wù)處理庫(kù)

[復(fù)制鏈接]

359

主題

359

帖子

3318

積分

四級(jí)會(huì)員

Rank: 4

積分
3318
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2024-10-15 11:45:00 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
關(guān)注+星標(biāo)公眾號(hào),不錯(cuò)過(guò)精彩內(nèi)容

作者 | strongerHuang
微信公眾號(hào) | 嵌入式專欄
做嵌入式開發(fā)不能只想著裸機(jī),有些小項(xiàng)目確實(shí)用簡(jiǎn)單裸機(jī)實(shí)現(xiàn)就可以了,但長(zhǎng)期來(lái)說(shuō),我們還是要“做大做強(qiáng)”,所以,要么上RTOS,要么有框架思維。
今天就分享一個(gè)強(qiáng)大的協(xié)同多任務(wù)處理庫(kù):TaskScheduler(多任務(wù)調(diào)度器)。
開源地址:https://github.com/arkhipenko/TaskScheduler

關(guān)于TaskScheduler
Task Scheduler是一款適用于Arduino, ESPx, STM32和其他微控制器的協(xié)同多任務(wù)處理庫(kù)。

它是協(xié)作多任務(wù)(任務(wù)調(diào)度)的輕量級(jí)實(shí)現(xiàn),也是搶先式編程和FreeRTOS等框架的簡(jiǎn)單替代方案。

大多數(shù)情況下,你不需要擔(dān)心并發(fā)處理的問(wèn)題(競(jìng)爭(zhēng)、死鎖、活動(dòng)鎖、資源共享等),協(xié)作處理的事件是通過(guò)設(shè)計(jì)來(lái)處理這些問(wèn)題。
主要特點(diǎn):

適用的一些平臺(tái):
  • Arduino
  • ATtiny85
  • ESP8266
  • ESP32
  • Teensy
  • nRF52
  • STM32
  • Raspberry Pi
    使用方法
    這種開源庫(kù)提供了接口,使用方法其實(shí)很簡(jiǎn)單,比如這里基于Ardiuo平臺(tái)給大家簡(jiǎn)單講述一下使用方法。
    1、下載源碼https://github.com/arkhipenko/TaskScheduler
    2、添加源碼將下載的源碼添加到Ardiuo工程中,然后包含頭文件。
  • #include
    3、添加自己的多任務(wù)代碼
  • #include
    Scheduler scheduler;
    Task task1(1000, TASK_FOREVER, [](){});
    Task task2(1000, TASK_FOREVER, [](){});
    void setup() {  scheduler.init();  scheduler.addTask(task1);  scheduler.addTask(task2);  task1.enable();  task2.enable();}
    void loop() {  scheduler.execute();}
    本文就簡(jiǎn)單分享到這里,感興趣的小伙伴可以嘗試使用一下。------------ END ------------



    ●專欄《嵌入式工具
    ●專欄《嵌入式開發(fā)》
    ●專欄《Keil教程》
    ●嵌入式專欄精選教程

    關(guān)注公眾號(hào)回復(fù)“加群”按規(guī)則加入技術(shù)交流群,回復(fù)“1024”查看更多內(nèi)容。
    點(diǎn)擊“閱讀原文”查看更多分享。
  • 發(fā)表回復(fù)

    本版積分規(guī)則


    聯(lián)系客服 關(guān)注微信 下載APP 返回頂部 返回列表