标签:
Example1:
ps:注意事项:
关于Keil报错 *** FATAL ERROR L210: I/O ERROR ON INPUT FILE:缺少RTX51.LIB
需要在项目里面选择操作系统,RTX-51TINY
程序启动时从任务0开始,同时创建任务1,任务 1等待任务0产生信号0,信号量为0时任务挂起,为1时清除信号标准并继续执行任务-》启动任务2,任务2执行一段时间后删除自身任务。
#include <rtx51tny.h> #include <stc.H> sbit LED1=P0^0; sbit LED2=P0^1; sbit LED3=P0^2; long cnt; job0() _task_ 0 { os_create_task(1); while(1) { LED1=~LED1; os_wait2(K_TMO,10); cnt++; if(cnt==20) os_send_signal(1); } } job1() _task_ 1 { while(1) { LED2=~LED2; os_wait(K_SIG,0,0); os_create_task(2); cnt=0; } } job2() _task_ 2 { LED3=0; os_wait2(K_TMO,50); LED3=1; os_delete_task(2); return 0; }
优先级可以定为0-3;
重新定义如下:
job1() _task_ 1 _priority_1
{
}
此时,当1个信号量到达之后,将马上开始执行。
RXT51可以与中断并行工作,中断函数可以与RTX51通讯,向RTX51的任务发送信号或消息
RTX51-Tiny 本身不包括任何中断管理,对中断允许寄存器的操作同普通一样。
由于内部使用了定时器0,因此不允许禁止定时器0中断
isr_send_message /isr_recv_messge 从中断中发送或接受信息
时间片的持续时间可以通过配置文件conf_tny.a51中变了TIMESHARING来设置
标签:
原文地址:http://www.cnblogs.com/expli/p/5609166.html