cpubbs论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

LabVIEW+单片机学习套件全套教程资料下载[免费]LabVIEW论坛精华列表贴USB0816数据采集卡《LabVIEW宝典》
LabWindows/CVI论坛精华贴NET0816以太网数据采集卡RC0210远程设备授权系统 关闭关停锁定打开设备 户外分布式数据采集
NET1624低速高精度以太网数据采集卡WIFI0824SD无线WIFI网络数据采集卡脱机运行 SD存储 小尺寸微型 串口采集远程采集 安卓 手持移动采集 纪录仪
查看: 1946|回复: 0

RTX51 Tiny 2.02 中文手册 part6[转贴]

[复制链接]
发表于 2009-9-27 11:39:40 | 显示全部楼层 |阅读模式
原贴地址:http://blog.ednchina.com/roumao/147030/message.aspx




第六章
函数参考

以下部分描述RTX51 Tiny的系统函数。函数依字母顺序排列,分为以下部分:
概要Summary 简述程序作用,列出包含的文件,包括它的声明和原型,语法举例,和参数描述。
描述Description程序的详细描述,如何使用。
返回值
程序返回值说明。

参阅see also

相关程序。

例子
如何正确使用该函数的程序例子中断。

附注:
l
os_开头的函数可以由任务调用,但不能由中断服务程序调用。
l
isr_开头的函数可以由中断服务程序调用,但不能由任务调用。
1、irs_send_signal
概要 #include<rtx51tny.h>

char isr_send_signal(unsigned char task_id);
/*信号发往的任务*/
描述: isr_send_signal函数给任务task_id发送一个信号。如果指定的任务正在等待一个信号,则该函数使该任务就绪,但不启动它,信号存储在任务的信号标志中。
附注:
l
该函数是RTX51 Tiny实时操作系统的一部分,仅包含于PK51中。
l
该函数仅被中断函数调用。
返回值
成功调用后返回0,如果指定任务不存在,则返回-1。

参阅

os_clear_signal,os_send_signal,os_wait

例子
#include<rtx51tny.h>
void tst_isr_send_signal(void) interrupt 2
{

isr_send_signal(8); /*给任务8发信号*/
}
2、irs_set_ready
概要
#include< rtx51tny.h>


char isr_set_ready{ unsigned char task_id};
/*使就绪的任务*/
描述
将由
task_id指定的任务置为就绪态。
附注

l
该函数是RTX51 Tiny的一部分,包含在PK51中。
l
该函数仅用于中断函数。
返回值

例子

#include< rtx51tny.h>


void tst_isr_set_ready(void)interrupt 2
{ isr_set_ready(1);/*置位任务1的就绪标志*/
}
3、os_clear_signal
概要
#include< rtx51tny.h>

char os_clesr_signal(unsigned cahr task_id);/*清除信号的任务*/
描述
清除由
task_id指定的任务信号标志。
附注: 该函数是RTX51 Tiny的一部分,包含在PK51中。
返回值
信号成功清除后返回
0,指定的任务不存在时返回-1
参阅

isr_send_signal,os_send_signal,os_wait

例子

#include< rtx51tny.h>


void tst_os_clsar_siganl(void)_task_8


{






os_clear_signal(5);
/*清除任务5的信号标志*/




}

4、os_create_task
概要

#include<rtx51tny.h>



char os_create_task(unsigned char task_id);
/*要启动的任务ID*/
描述
启动任务
task_id,该任务被标记为就绪,并在下一个时间点开始执行。
附注:
该函数是包含在
PK51中的RTX51 Tiny的组成部分。
返回值
任务成功启动后返回0,如果任务不能启动或任务已在运行,或没有以
task_id定义的任务,返回-1。
参阅
os_delete_task
例子
#include< rtx51tny.h>


#include<stdio.h>

/*用于
printf*/

void new_task(void)_task_2
{…}
void tst_os_create_task(void)_task_0
{

if(os_create_task(2))

{

printf(“couldn’t start task2\n”);


}






}

5、os_delete_task
概要
#include<rtx51tny.h>


char os_delete_task(unsigned char task_id);
/*要删除的任务*/
描述
函数将以
task_id指定的任务停止,并从任务列表中将其删除。
附注
该函数是包含在
PK51中的RTX51 Tiny的组成部分。
返回值
任务成功停止并删除后返回
0。指定任务不存在或未启动时返回-1
附注
如果任务删除自己,将立即发生任务切换。

参阅
os_create_task
例子

#include<rtx51tny.h>

#include<stdio.h>

void tst_os_delete_task(void)_task_0

{







if(os_delete_task(2))


{


printf(“couldn’t stop task2\n”);


}





}

6、os_reset_interval
概要
#include<rtx51tny.h>

void os_reset_interval(unsigned char ticks); /*滴答数*/
描述
用于纠正由于
os_wait函数同时等待K_IVLK_SIG事件而产生的时间问题,在这种情况下,如果一个信号事件(K_SIG)引起os_wait退出,时间间隔定时器并不调整,这样,会导致后续的os_wait调用(等待一个时间间隔)延迟的不是预期的时间周期。允许你将时间间隔定时器复位,这样,后续对os_wait的调用就会按预期的操作进行。
附注: 该函数是包含在PK51中的RTX51 Tiny的组成部分。
返回值

例子

#include<rtx51tny.h>



void task_func(void)_task_4



{




switch(os_wait2(KSIG|K_IVL,100))



{


case
TMO_EVENT:


/*发生了超时,不需要
Os_reset_interval*/
break;

case
SIG_EVCENT:


/*收到信号,需要
Os_reset_interval*/

os_reset_interval(100);

/*依信号执行的其它操作*/




break;



}




}

7、os_running_task_id

概要
#include<rtx51tny.h>

char os_running_task_id(void);


描述
函数确认当前正在执行的任务的任务
ID

附注: 该函数是包含在
PK51中的RTX51 Tiny的组成部分。

返回值 返回当前正在执行的任务的任务号,该值为
0~15之间的一个数。

例子

#include<rtx51tny.h>



void tst_os_running_task(void)_task_3


{


unsigned char tid;


tid=os_running_task_id( );
/*tid=3*/

}


8、os_send_signal
概要

#include<rtx51tny.h>


char os_send_signal(char task_id);
/*信号发往的任务*/

描述
函数向任务
task_id发送一个信号。如果指定的任务已经在等待一个信号,则该函数使任务准备执行但不启动它。信号存储在任务的信号标志中。

附注
该函数是包含在
PK51中的RTX51 Tiny的组成部分。

返回值 成功调用后返回
0,指定任务不存在时返回-1

参阅
isr_send_signal,os_clear_signal,os_wait

#include<rtx51tny.h>



void signal_func(void)_task_2


{




os_send_signal(8);
/*向8号任务发信号*/





}


void tst_os_send_signal(void)_task_8


{




os_send_signal(2);
/*向2号任务发信号*/




}
9、
os_set_ready
概要

#include<rtx51tny.h>


char os_set_ready(unsigned char task_id);
/*使就绪的任务*/

描述
将以
task_id指定的任务置为就绪状态。

附注: 该函数是包含在
PK51中的RTX51 Tiny的组成部分。

返回值 无


例子
#include<rtx51tny.h>

void ready_func(void)_task_2


{




os_set_ready(1);
/*置位任务1的就绪标志*/





}

10、
os_switch_task

概要

#include<rtx51tny.h>


char os_switch_task(void);


描述
该函数允许一个任务停止执行,并运行另一个任务。如果调用
os_switch_task的任务是唯一的就绪任务,它将立即恢复运行。

附注:
该函数是包含在
PK51中的RTX51 Tiny的组成部分。

返回值


例子
#include<rtx51tny.h>

#include<stdio>


void long_job(void)_task_1


{


float f1,f2;


f1=0.0;


while(1)


{


f2=log(f1);


f1+=0.0001;


os_switch_task();
/*运行其它任务*/


}


}

11os_wait

概要
#include<rtx51tny.h>

char os_wait(


unsigned char event_sel,
/*要等待的事件*/


unsigned char ticks,

/*要等待的滴答数*/


unsigned int
dammy);

/*无用参数*/


描述
该函数挂起当前任务,并等待一个或几个事件,如时间间隔,超时,或从其它任务和中断发来的信号。参数
event_set指定要等待的事件,可以是下表中常数的一些组合。






K_IVL
等待滴答值为单位的时间间隔
K_SIG
等待一个信号
K_TMO
等待一个以滴答值为单位的超时

事件可以用竖线符“|”进行逻辑或。例如,K_TMO1K_SIG指定任务等待一个超时或者一个信号。
ticks参数指定要等待的时间间隔事件(K_IVL)或超时事件(K_TMO)的定时器滴答数。参数是为了提供与兼容性而设置的,在中并不使用。

附注

l
该函数是包含在PK中的RTX51 Tiny的组成部分。
l
请参阅事件一节获得关于K_IVL,K_SIG,K_TMO的更多信息。

返回值 当有一个指定的事件发生时,任务进入就绪态。任务恢复执行时,下表列出的由返回的常数指出使任务重新启动的事件。可能的返回值有:



返 回 值


RDY_EVENT
表示任务的就绪标志是被或函数置位的。
SIG_EVENT
收到一个信号
TMO_EVENT
超时完成,或时间间隔到
NOT_OK
参数的值无效

参阅

isr_send_signal,isr_set_ready,os_clear_signal,os_reset_interval,
os_send_signal,os_set_ready,os_wait1,os_wait2
例子
#include<rtx51tny.h>

#include<stdio.h>


void tst_os_wait(void)_task_9


{


while(1)


{


char event;


event=os_wait(K_SIG|K_TMO,50.0);


switch(event)


{



default:

/*从不发生,该情况*/



break;



case
TMO_EVENT;
/*超时*/


break;

/*
50次滴答超时*/

case
SIG_EVENT;
/*收到信号*/

break;


}


}


}

12os_wait1
  概要
#include<rtx51tny.h>

  char os_wait1(unsigned
char
event_sel);
/*要等待的事件*/
描述
该函数挂起当前的任务等待一个事件发生。os_wait1os_wait的一个子集,它不支持os_wait提供的全部事件。参数event_sel指定要等待的事件,该函数只能是K_SIG
附注:
l
该函数是包含于PK51中的RTX51Tiny的组成部分。
l
参见事件一节获得K_IVLK_SIGK_TMO的更多信息。
返回值
当指定的事件发生,任务进入就绪态。任务恢复运行时,os_wait1        
    返回的值表明启动任务的事件,返回值见下面的常数列表:



返 回 值

RDY_EVENT
任务的就绪标志位是被os_set_readyisr_set_ready置位的
SIG_EVENT
收到一个信号
NOT_OK
Event_sel参数的值无效

例子
os_wait

13、os_wait2
概要
#include<rtx51tny.h>


char os_wait2(unsigned char event_sel,
/*要等待的事件*/
unsigned char ticks);
/*要等待的滴答数*/
描述
函数挂起当前任务等待一个或几个事件发生,如时间间隔,超时或一个从其它任务或中断来的信号。参数event_sel指定的事件可以是下列常数的组合:

Event
   描  述
K_IVL
等待以滴答数为单位的时间间隔
K_SIG
等待一个信号
K_TMO
等待以滴答数为单位的超时

事件可以用“|”进行逻辑或。如K_TMO|K_SIG表示任务等待一个超时或一个信号。
参数ticks 指定等待时间间隔(K_IVL)或超时(K_TMO)事件时的滴答数。

附注:
l
该函数是包含于PK51中的RTX51Tiny的组成部分。
l
参见事件一节获得更多关于K_IVL, K_TMO,K_SIG的信息。
返回值
当一个或几个事件产生时,任务进入就绪态.任务恢复执行时, os_wait2的返回值见下面的常数列表:






RDY_EVENT
任务的就绪标志是被os_set_readyisr_set_ready函数置位的
SIG_EVENT
收到一个信号
TMO_EVENT
返回时完成,或时间间隔到达
NOT_OK
参数event_sel的值无效

例子
os_wait
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|cpubbs论坛. ( 粤ICP备09171248号 )

GMT+8, 2025-4-10 19:16 , Processed in 0.468560 second(s), 6 queries , Gzip On, File On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表