分享一个强大的协同多任务处理库

文摘   2024-10-16 17:58   山东  

关注+星标公众,不错过精彩内容

作者 | 量子君

微信公众号 | 极客工作室

做嵌入式开发不能只想着裸机,有些小项目确实用简单裸机实现就可以了,但长期来说,我们还是要“做大做强”,所以,要么上RTOS,要么有框架思维。


今天就分享一个强大的协同多任务处理库:TaskScheduler(多任务调度器)。


开源地址:
https://github.com/arkhipenko/TaskScheduler

关于TaskScheduler

Task Scheduler是一款适用于Arduino, ESPx, STM32和其他微控制器的协同多任务处理库。


它是协作多任务(任务调度)的轻量级实现,也是抢先式编程和FreeRTOS等框架的简单替代方案。


大多数情况下,你不需要担心并发处理的问题(竞争、死锁、活动锁、资源共享等),协作处理的事件是通过设计来处理这些问题。

主要特点:

适用的一些平台:

  • Arduino
  • ATtiny85
  • ESP8266
  • ESP32
  • Teensy 
  • nRF52 
  • STM32
  • Raspberry Pi


使用方法

这种开源库提供了接口,使用方法其实很简单,比如这里基于Ardiuo平台给大家简单讲述一下使用方法。


1、下载源码
https://github.com/arkhipenko/TaskScheduler

2、添加源码

将下载的源码添加到Ardiuo工程中,然后包含头文件。

#include <TaskScheduler.h>

3、添加自己的多任务代码
#include <TaskScheduler.h>
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();}

本文就简单分享到这里,感兴趣的小伙伴可以尝试使用一下。






若觉得文章对你有帮助,随手点『好看』、转发分享,也是对我的支持
关注我的微信公众号回复“加群”按规则加入技术交流群,回复“1024”查看更多内容。
点击“阅读原文”查看更多分享

极客工作室
一个专注于嵌入式系统、智能硬件、AIoT的极客自媒体
 最新文章