您现在的位置: 主页 > MCU > 单片机技术应用 > RTX-51实时系统(2) -
本文所属标签:
为本文创立个标签吧:

RTX-51实时系统(2) -

来源: 网络用户发布,如有版权联系网管删除 2018-09-06 

[导读]【例子】调用Keil自带的RTX-51 Tiny实时系统来控制LED灯,不断重复4种不同的流水灯每100ms对LED进行操作。RTX-51实时系统代码如下:1#include"stc.h"2#include"rtx51tny.h"34#defineTASKINIT0//任务ID5#defineLEDCTR

【例子】调用Keil自带的RTX-51 Tiny实时系统来控制LED灯,不断重复4种不同的流水灯每100ms对LED进行操作。

本文引用地址: http://www.21ic.com/app/mcu/201807/783534.htm


RTX-51实时系统代码如下:

1#include"stc.h"2#include"rtx51tny.h"34#defineTASKINIT0//任务ID5#defineLEDCTRLTASK116#defineLEDCTRLTASK227#defineLEDCTRLTASK338#defineLEDCTRLTASK44910#defineLED_PORTP21112/******************************************13*函数名称:Taskinit14*输入:无15*输出:无16*功能:初始化任务17*******************************************/18voidTaskinit(void)_task_TASKINIT19{2021os_create_task(TASKINIT);//创建Taskinit任务22os_create_task(LEDCTRLTASK1);//创建LEDCtrlTask1任务23os_create_task(LEDCTRLTASK2);//创建LEDCtrlTask2任务24os_create_task(LEDCTRLTASK3);//创建LEDCtrlTask3任务25os_create_task(LEDCTRLTASK4);//创建LEDCtrlTask4任务26os_send_signal(LEDCTRLTASK1);//向LEDCtrlTask1任务发送信号27os_delete_task(TASKINIT);//删除Taskinit任务2829}30/******************************************31*函数名称:LEDCtrlTask132*输入:无33*输出:无34*功能:流水灯任务135*******************************************/36voidLEDCtrlTask1(void)_task_LEDCTRLTASK137{38unsignedchari=0;3940while(1)41{42os_wait(K_SIG,LEDCTRLTASK1,0);//等待LEDCtrlTask1任务信号4344for(i=0;i<=7;i++)45{46LED_PORT|=1<

代码分析

在RTX-LED实验代码中存在5个任务:分别是TaskInit、LEDCtrlTask1、LEDCtrlTask2、

LEDCtrlTask3、LEDCtrlTask4。

TaskInit任务负责任务的创建,创建LEDCtrlTask1、LEDCtrlTask2、LEDCtrlTask3、

LEDCtrlTask4这4个控制LED灯任务。当创建这4个任务成功后,在TaskInit任务中删除TaskInit任务。

LEDCtrlTask1任务中的while(1)死循环第一步等待LEDCtrlTask1任务消息,调用os_wait(K_SIG,LEDCTRLTASK1,0)来执行。当接收到LEDCtrlTask1任务消息时,则通过for循环进行LED灯操作,并通过调用os_wait (K_TMO,10,0)进行100ms延时。最后执行发送LEDCtrlTask2任务消息。

LEDCtrlTask2、LEDCtrlTask3、LEDCtrlTask4任务内部函数操作都与LEDCtrlTask1雷同,没有多大的区别。




              查看评论 回复



嵌入式交流网主页 > MCU > 单片机技术应用 > RTX-51实时系统(2) -
 

"RTX-51实时系统(2) -"的相关文章

网站地图

围观()