版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、21天学51单片机开发,第二十讲:51系列单片机的多任务操作系统,课程安排,RTX-51实时多任务操作系统简介 RTX-51 Tiny的任务管理 RTX-51 Tiny的系统函数 RTX-51与单任务程序的比较 RTX-51循环任务调度程序设计 RTX-51事件任务调度程序设计 RTX-51信号任务调度程序设计 RTX-51优先级及抢先任务切换程序设计,RTX-51实时多任务操作系统简介,多任务操作系统也就是可以运行多个程序的平台。 RTX-51是一种适用于51系列单片机的实时多任务操作系统(RTOS)。 RTX-51实时多任务系统 RTX-51 FULL RTX-51 Tiny,RTX-51
2、实时多任务系统特点,任务调度 信息传递 中断 CAN通信 BITBUS通信,RTX-51 Tiny的任务管理,在RTX-51 Tiny中支持5种任务状态,任何一个任务必须处于其中一个确定的状态。 READY RUNING WAITING DELETED TIMEOUT,RTX-51 Tiny支持的事件,信号(SIGNAL) 超时(TIMEOUT) 时间间隔事件(INTERVAL),RTX-51 Tiny的系统函数,信号发送函数isr_send_signal 信号标志清除函数os_clear_signal 任务启动函数os_create_task 任务删除函数os_delete_task 当前任
3、务号函数os_running_task_id 信号发送函数os_send_signal 等待函数os_wait 等待函数os_wait1 等待函数os_wait2,RTX-51与单任务程序的比较,简单的单任务C51程序,01#include 02#include 03int count=0; 04void main()/主函数 05 06while(1)/主循环 07 08count+;/计数器加1 09printf(Single Task: count=%d,count);/输出 10if(count=500) 11 12count=0;/归零 13 14 15,RTX-51与单任务程序的比
4、较,多任务循环C51程序,01#include 02#include 03int count0=0; 04int count1=0; 05void main()/主函数 06 07while(1)/主循环 08 09count0+;/计数器count0加1 10printf(Single Process Task0:count0=%dn,count0); 11count1+;/计数器count1加1 12printf(Single Process Task1:count1=%dn,count1); 13if(count0=500) 14 15count0=0; 16 17if(count1=5
5、00) 18 19count1=0; 20 21 22,RTX-51与单任务程序的比较,多任务RTX-51程序,01#include 02#include 03#include 04int count0=0; 05int count1=0; 06Thread0 () _task_ 0 /任务0 07 08os_create_task(1);/创建任务1 09while(1) 10 11printf(Task0:count0=%dn,count0+); /打印输出count0 12if(count0=500) 13 14count0=0; 15 16 17 18Thread1 () _task_
6、 1 /任务1 19 20while(1) 21 22printf(Task1:count1=%dn,count1+);/打印输出count1 23if(count1=500) 24 25count1=0; 26 27 28,RTX-51循环任务调度程序设计,RTX-51循环任务调度是按照预先划分的时间片来循环轮流执行多个任务的。,01#include 02#include 03#include 04Thread0 () _task_ 0 /任务0 05 06P1=0 x00;/初始化 07P2=0 x00; 08os_create_task(1);/创建任务1 09while(1) 10 1
7、1P1=P1+1;/P1端口递增 12 13 14Thread1 () _task_ 1 /任务1 15 16while(1) 17 18P2=P2+1;/P2端口递增 19 20,RTX-51事件任务调度程序设计,RTX-51事件任务调度是使用事件来实现多任务之间切换的调度方式。,01#include 02#include 03#include 04int count0=0; 05int count1=0; 06Thread0 () _task_ 0 /任务0 07 08os_create_task(1); /创建任务1 09while(1) 10 11printf(Task0:count0
8、=%dn,count0+);/打印输出count0 12os_wait(K_TMO,2);/暂停两个信号 13if(count0=500) 14 15count0=0; 16 17 18 19Thread1 () _task_ 1 /任务1 20 21while(1) 22 23printf(Task1:count1=%dn,count1+);/打印输出count1 24os_wait(K_TMO,3);/暂停三个信号 25if(count1=500) 26 27count1=0; 28 29 30,RTX-51信号任务调度程序设计,RTX-51信号任务调度是使用信号来完成多任务之间切换的调度
9、方式。,01#include 02#include 03#include 04int count0=0; 05int count1=0; 06Thread0 () _task_ 0 /任务0 07 08os_create_task(1); /创建任务1 09while(1) 10 11printf(Task0:count0=%dn,count0+); /打印输出count0 12if(count0=10) 13 14os_send_signal(1);/向任务1发送信号 15count0=0; 16 17 18 19Thread1 () _task_ 1 /任务1 20 21while(1)
10、22 23os_wait(K_SIG,0,0);/等待信号 24printf(Task1:count1=%dn,count1+);/打印输出count1 25 26,RTX-51优先级及抢先任务切换程序设计,抢先任务切换是根据不同任务的优先级来执行不同任务的调度方式。,01#include 02#include 03#include 04int count0=0; 05int count1=0; 06Thread0 () _task_ 0 /任务0 07 08os_create_task(1); /创建任务1 09while(1) 10 11printf(Task0:count0=%dn,count0+); /打印输出count0 12if(count0=10) 13 14os_send_signal(1);/向任务1发送信号 15count0=0; 16 1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026java 算法面试题及答案
- 2026layui面试题及答案
- 初中九年级数学(人教版)下册第二十八章锐角三角函数核心知识清单
- 2026年软件设计师(下午案例分析)试题及答案
- 初中七年级数学《有理数加减法》暑期精讲知识清单
- 初中语文七年级上册《中秋咏月诗三首·我的思念是圆的》情境教学教案
- 小学数学四年级上册《加法交换律和乘法交换律》单元整体教学设计
- 2026年江苏高考数学压轴真题试题及答案
- 2026年护士资格(实践能力)考试试题及答案
- 2026年高考语文一轮复习试题及答案
- 平台施工电梯及物料提升机通道施工方案
- 洁净区臭氧消毒效果验证方案
- 人教版小学三年级语数英下册期末试卷
- 有砟轨道结构 轨枕
- 装修工程竣工验收自评报告
- 高考文言文阅读专练:刘邦、项羽+
- 码头租赁合同
- 国家开放大学一网一平台电大《建筑测量》实验报告1-5题库
- 非织造学-第九章-熔喷工艺课件
- 舒曼《交响练习曲》详解
- 某立交桥维修加固(实施)施工组织设计设计
评论
0/150
提交评论