電子產業(yè)一站式賦能平臺

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

搜索
查看: 124|回復: 0
收起左側

分享一個強大的協(xié)同多任務處理庫

[復制鏈接]

418

主題

418

帖子

4293

積分

四級會員

Rank: 4

積分
4293
跳轉到指定樓層
樓主
發(fā)表于 2024-10-15 11:45:00 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
關注+星標公眾,不錯過精彩內容

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

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

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

大多數(shù)情況下,你不需要擔心并發(fā)處理的問題(競爭、死鎖、活動鎖、資源共享等),協(xié)作處理的事件是通過設計來處理這些問題。
主要特點:

適用的一些平臺:
  • Arduino
  • ATtiny85
  • ESP8266
  • ESP32
  • Teensy
  • nRF52
  • STM32
  • Raspberry Pi
    使用方法
    這種開源庫提供了接口,使用方法其實很簡單,比如這里基于Ardiuo平臺給大家簡單講述一下使用方法。
    1、下載源碼https://github.com/arkhipenko/TaskScheduler
    2、添加源碼將下載的源碼添加到Ardiuo工程中,然后包含頭文件。
  • #include
    3、添加自己的多任務代碼
  • #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();}
    本文就簡單分享到這里,感興趣的小伙伴可以嘗試使用一下。------------ END ------------



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

    關注公眾號回復“加群”按規(guī)則加入技術交流群,回復“1024”查看更多內容。
    點擊“閱讀原文”查看更多分享。
  • 回復

    使用道具 舉報

    發(fā)表回復

    您需要登錄后才可以回帖 登錄 | 立即注冊

    本版積分規(guī)則


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