电子产业一站式赋能平台

PCB联盟网

搜索
查看: 28|回复: 0
收起左侧

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

[复制链接]

286

主题

286

帖子

1945

积分

三级会员

Rank: 3Rank: 3

积分
1945
发表于 昨天 11:45 | 显示全部楼层 |阅读模式
关注+星标公众,不错过精彩内容

gna41vttbcp6404772646.gif

gna41vttbcp6404772646.gif

作者 | strongerHuang
微信公众号 | 嵌入式专栏
做嵌入式开发不能只想着裸机,有些小项目确实用简单裸机实现就可以了,但长期来说,我们还是要“做大做强”,所以,要么上RTOS,要么有框架思维。
今天就分享一个强大的协同多任务处理库:TaskScheduler(多任务调度器)。
开源地址:https://github.com/arkhipenko/TaskScheduler

siplyws2ssh6404772746.png

siplyws2ssh6404772746.png

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

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

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

45d0r4lhnqh6404772846.png

45d0r4lhnqh6404772846.png

适用的一些平台:
  • 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 ------------

    o2pgv3zyjqv6404772946.gif

    o2pgv3zyjqv6404772946.gif


    ●专栏《嵌入式工具
    ●专栏《嵌入式开发》
    ●专栏《Keil教程》
    ●嵌入式专栏精选教程

    关注公众号回复“加群”按规则加入技术交流群,回复“1024”查看更多内容。
    点击“阅读原文”查看更多分享。
  • 回复

    使用道具 举报

    发表回复

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则


    联系客服 关注微信 下载APP 返回顶部 返回列表