RTX51任务创建

1、配置文件

在工程中添加RTXCONF.A51、Rtxsetup.inc这两个配置文件,并在Rtxsetup.inc文件中配置RTX51系统初始化参数,如下:

?RTX_CPU_TYPE     EQU 2  ;这里使用的是AT89C51,所以填写值为2

其它参数并没有修改,采用了默认设置,请参考阅读RTX 51 FULL源码学习(3)!

2、编写用户自己的C文件

这里,本人新建了一个名为main.c的C文件,在main.c中添加头文件“rtx51.h”和“regx52.h”,接下来编写任务函数,并创建任务,具体如下:

#include <rtx51.h>
#include <regx52.h>
void LED1()_task_ 1	//任务1
{
 P1_0=0;
 while(1)
 {
  P1_0 =~P1_0;
  os_wait2(K_TMO,100);
 }
}
void lED2()_task_ 2		//任务2
{
 P1_1=1;
 while(1)
 {
  P1_1 =~P1_1;
  os_wait2(K_TMO,100);
 }
}
void lED3()_task_ 3 	 //任务3
{
 P2=0x00;
 while(1)
 {
  P2 =~P2;
  os_wait2(K_TMO,100);
 }
}
void Init()_task_ 0		//任务0
{
 os_set_slice(10000);//10ms,滴答时钟设置
 os_create_task(1);
 os_create_task(2);
 os_create_task(3);
 os_delete_task(0);//删除任务
}
void main()
{
 os_start_system(0);//启动系统
}

这里的“task”任务号关键字,系统通过任务号来识别任务。这里的任务1、2、3其实才是有实际功能的任务,而任务0只是为了创建任务1、2、3而存在的,创建完成后就删除了自己。
os_wait2(等待事件类型,等待时间)这是os_wait()的简化版,丢掉了第三个参数。等待事件类型有三种:
K_TMO,这表示超时事件;
K_IVL,这表示周期性事件;
K_SIG,这表示信号事件。
等待时间:为一常量,表示等待多少个滴答时钟的时间。
该函数执行期间不影响任务切换!

3、总结

编写任务函数不允许有返回值,给出不重复的任务号标识,每一个实际的任务都是死时钟循环,任务运行前,配置滴答,最后在main函数中调用os_start_system(任务号)系统函数启动系统!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sxhheh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值