0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【晶心科技ADP-Corvette-T1开发板试用体验】corvette T1的多任务调度学习

开发板试用精选 来源:开发板试用 作者:电子发烧友论坛 2022-11-11 10:55 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本文来源电子发烧友社区,作者:ankor, 帖子地址:https://bbs.elecfans.com/jishu_2292363_1_1.html

corvette T1多任务调度学习

本文尝试实现corvette T1开发板的多任务协作功能

多任务协作功能可以使用freeRTOSRT-thread一类实时操作系统实现,也可以使用中断、任务调度器来实现这些功能在arduino中也都支持,因为并不清楚T1开发板支不支持实时操作系统所以本次暂不采用实时操作系统来实现(英文太差,不太看的懂手册QAQ,而且说明文档好像也没提这事?)。

最后我选择了任务调度器来实现T1开发板下的多任务调度,主要用到TaskScheduler这个库,在管理库中搜索并安装即可。

image-20220710153612129.png

先演示下其中的示例,打开个库中的Scheduler_example00_Blink这个示例,操作步骤:文件→示例→TaskScheduler→Scheduler_example00_Blink,如下图。

image-20220710154230957.png

修改LED_BUILTON为13

image-20220710154558688.png

修改前
image-20220710154716104.png

修改后
然后上传即可看到开头视频中的演示效果了。

多任务调度学习

然后又跟下面这位大佬的教程学习了多任务调度的操作(其实主要是学明白他的操作,自己还是太菜了QAQ)

(42条消息) Arduino|实现多任务操作,从此告别果奔6柒的博客-CSDN博客arduino多任务并行

首先是声明自己的回调函数


void t1Callback();

void t2Callback(); void t3Callback();

然后创建任务也就是Task的创建


Task t1(2000, 10, &t1Callback);//创建任务对象,内部参数为延迟时间,任务生存时间(s),任务的回调函数地址

Task t2(3000, TASK_FOREVER, &t2Callback);//回调函数主要是实现任务功能的 Task t3(5000, TASK_FOREVER, &t3Callback);

然后是调度器的创建,主要负责收纳、执行和删除这些任务的


Scheduler runner;

然后根据对象runner区访问类的成员函数


runner.init();

runner.addTask(name);//添加name任务,name为上面的Task 如t1或t2或t3 runner.deleteTask(name); runner.execute();

更多的细节可以参考上面那篇文章,最后是T1开发板使用该文提供的代码跑出来的效果。


#include

// Callback methods prototypes void t1Callback(); void t2Callback(); void t3Callback();

//Tasks (delay_ms,times,func) Task t4(); Task t1(2000, 10, &t1Callback); Task t2(3000, TASK_FOREVER, &t2Callback); Task t3(5000, TASK_FOREVER, &t3Callback);

Scheduler runner;

void t1Callback() { Serial.print("t1: "); Serial.println(millis());


if (t1.isFirstIteration()) { runner.addTask(t3); t3.enable(); Serial.println("t1: enabled t3 and added to the chain"); } if (t1.isLastIteration()) { t3.disable(); runner.deleteTask(t3); t2.setInterval(500); Serial.println("t1: disable t3 and delete it from the chain. t2 interval set to 500"); }

}

void t2Callback() { Serial.print("t2: "); Serial.println(millis());

}

void t3Callback() { Serial.print("t3: "); Serial.println(millis());

}

void setup () { Serial.begin(115200); Serial.println("Scheduler TEST");

runner.init(); Serial.println("Initialized scheduler");

runner.addTask(t1); Serial.println("added t1");

runner.addTask(t2); Serial.println("added t2");

t1.enable(); Serial.println("Enabled t1"); t2.enable(); Serial.println("Enabled t2"); }

void loop () { runner.execute(); }

示例展示

image-20220710230703150.png

以上便是本文的所有内容了

谢谢阅读。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 晶心科技
    +关注

    关注

    0

    文章

    126

    浏览量

    19186
  • 开发板试用
    +关注

    关注

    3

    文章

    303

    浏览量

    2798
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    ZL30100 T1/E1系统同步器:功能特性与应用解析

    ZL30100 T1/E1系统同步器:功能特性与应用解析 在电子设备的通信系统中,时钟同步是确保数据准确传输和系统稳定运行的关键因素。Zarlink Semiconductor Inc. 推出
    的头像 发表于 04-15 15:30 186次阅读

    MAX4670:T1/E1/J1线路冗余保护的理想之选

    MAX4670:T1/E1/J1线路冗余保护的理想之选 在当今的通信系统中,T1/E1/J1线路
    的头像 发表于 04-03 15:05 228次阅读

    RZ/T1 Group:高性能MCU的技术解析与应用洞察

    RZ/T1 Group:高性能MCU的技术解析与应用洞察 一、引言 在当今电子科技飞速发展的时代,微控制器(MCU)作为众多电子设备的核心大脑,其性能和功能直接影响着设备的整体表现。RZ/T1
    的头像 发表于 04-01 14:00 236次阅读

    深度解析DS26503 T1/E1/J1 BITS元素:功能、特性与应用

    深度解析DS26503 T1/E1/J1 BITS元素:功能、特性与应用 在通信硬件设计领域,时钟恢复和数据传输是至关重要的环节。DS26503作为一款先进的T1/E
    的头像 发表于 03-24 17:10 350次阅读

    有奖丨米尔全志 T153 MINI开发板免费试用来啦

    米尔与全志合作发布的新品基于全志T153应用处理器的MYD-YT153MX-MINI开发板免费试用名额来啦~~米尔提供了3套价值399元的MYD-YT153MX-MINI开发板发起
    的头像 发表于 01-29 08:04 698次阅读
    有奖丨米尔全志 <b class='flag-5'>T</b>153 MINI<b class='flag-5'>开发板</b>免费<b class='flag-5'>试用</b>来啦

    Renesas RX66T 开发板:功能、配置与使用指南

    Renesas RX66T 开发板:功能、配置与使用指南 在嵌入式系统开发领域,一款性能优良的开发板能为工程师们带来极大的便利。Renesas RX66
    的头像 发表于 12-29 15:45 1058次阅读

    Renesas FPB - RA2T1快速原型开发板:开启高效设计之旅

    Renesas FPB - RA2T1快速原型开发板:开启高效设计之旅 在电子设计领域,一款优秀的快速原型开发板能极大地提升开发效率,为项目的成功奠定基础。Renesas的FPB -
    的头像 发表于 12-26 16:20 502次阅读

    ADI T1/E1/J1收发器的环回功能

    本文概述了ADI T1/E1/J1收发器的环回功能。T1和E1是术语,用来描述通过任意介质进行的1.544Mbps和2.048Mbps传输。
    的头像 发表于 10-22 09:30 3176次阅读
    ADI <b class='flag-5'>T1</b>/E<b class='flag-5'>1</b>/J<b class='flag-5'>1</b>收发器的环回功能

    fpga开发板 璞致Artix-7系列之PA-Starlite Artix7 A735T 75T 100T 200T开发板用户手册-学习

    方式(USB Type-C或40P扩展口)。板载包括:1GB DDR3、128Mb QSPI Flash、64Kbit EEPROM、千兆以太网、HDMI输出、MIPI接口(除PA35T)、SD卡槽等。开发板集成USB转JTAG
    的头像 发表于 10-14 14:59 3141次阅读
    fpga<b class='flag-5'>开发板</b> 璞致Artix-7系列之PA-Starlite Artix7 A735<b class='flag-5'>T</b> 75<b class='flag-5'>T</b> 100<b class='flag-5'>T</b> 200<b class='flag-5'>T</b><b class='flag-5'>开发板</b>用户手册-<b class='flag-5'>学习</b><b class='flag-5'>板</b>

    车载电器EMC整改:T1T3供应商,智能化解决方案助你

    南柯电子|车载电器EMC整改:T1T3供应商,智能化解决方案助你
    的头像 发表于 09-18 09:57 810次阅读

    【作品合集】合众HZ-T536开发板测评

    比,数据供参考)。核心经过严格的PCB设计优化和高低温环境测试稳定可靠,支持可选配的屏蔽罩可满足多种工业应用需求。 活动详情地址:【RISC-V专题】合众HZ-T536开发板试用体验
    发表于 09-12 09:37

    【HZ-T536开发板免费体验】开箱评测

    一、开箱 (1)概述 首先很感谢电子发烧友和合众恒跃给予的试用机会,有幸试用这款全志T536芯片,试用HZ-
    发表于 07-02 22:52

    基于米尔全志T536开发板的多协议物联网关的方案测试

    本文将介绍基于米尔电子MYD-LT536开发板(米尔基于全志T536开发板)的多协议物联网关方案的开发测试。摘自优秀创作者-ALSET米尔基于全志T
    的头像 发表于 06-19 08:03 2393次阅读
    基于米尔全志<b class='flag-5'>T</b>536<b class='flag-5'>开发板</b>的多协议物联网关的方案测试

    【RA4L1-SENSOR】+ RA4L1-SENSOR开发板之读取RA4L1 Sensor开发板芯片温度

    RA4L1-SENSOR开发板的温度值,断码屏显示 串口助手显示 RA4L1-SENSOR开发板上面是有个内部温度传感器的,可以直接测量到RA4L2的芯片温度的。这个温度传感器叫TSN
    发表于 06-13 15:29

    【评测试用】合众HZ-T536开发板免费试用体验

    【评测试用】合众HZ-T536开发板免费试用体验
    的头像 发表于 05-27 08:05 1314次阅读
    【评测<b class='flag-5'>试用</b>】合众HZ-<b class='flag-5'>T</b>536<b class='flag-5'>开发板</b>免费<b class='flag-5'>试用</b>体验