关注+星标公众号,不错过精彩内容
gna41vttbcp6404772646.gif
作者 | strongerHuang
微信公众号 | 嵌入式专栏
做嵌入式开发不能只想着裸机,有些小项目确实用简单裸机实现就可以了,但长期来说,我们还是要“做大做强”,所以,要么上RTOS,要么有框架思维。
今天就分享一个强大的协同多任务处理库:TaskScheduler(多任务调度器)。
开源地址:https://github.com/arkhipenko/TaskScheduler
siplyws2ssh6404772746.png
关于TaskScheduler
Task Scheduler是一款适用于Arduino, ESPx, STM32和其他微控制器的协同多任务处理库。
它是协作多任务(任务调度)的轻量级实现,也是抢先式编程和FreeRTOS等框架的简单替代方案。
大多数情况下,你不需要担心并发处理的问题(竞争、死锁、活动锁、资源共享等),协作处理的事件是通过设计来处理这些问题。
主要特点:
45d0r4lhnqh6404772846.png
适用的一些平台:
ArduinoATtiny85ESP8266ESP32Teensy nRF52 STM32Raspberry 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
●专栏《嵌入式工具》
●专栏《嵌入式开发》
●专栏《Keil教程》
●嵌入式专栏精选教程
关注公众号回复“加群”按规则加入技术交流群,回复“1024”查看更多内容。
点击“阅读原文”查看更多分享。 |