RTX51 Tiny实时操作系统学习笔记—初识RTX51 Tiny

 一,RTX51 Tiny简介

   RTX51 Tiny是一种实时操作系统(RTOS),可以用它来建立多个任务(函数)同时执行的应用(从宏观上看是同时执行的,但从微观上看,还是独立运行的)。嵌入式应用系统经常有这种需求。RTOS可以提供调度、维护、同步等功能。
  实时操作系统能灵活的调度系统资源,像CPU存储器,并且提供任务间的通信。RTX51 Tiny是一个功能强大的RTOS,且易于使用,它用于8051系列的微控制器。该RTOS最多支持16个任务,基于RTX51 Tiny构建的应用程序没有main( )函数,是从任务0开始执行的。
  RTX51 Tiny的程序用标准的C语言构造,由Keil C51 C编译器编译。用户可以很容易的定义任务函数,而不需要进行复杂的栈和变量结构配置,只需包含一个指定的头文件(rtx51tny.h)。
 RTX51 Tiny使用定时器0定时器0中断,和寄存器组1。如果在程序中使用了定时器0,则RTX51 Tiny将不能正常运转。你可以在定时器0的中断服务程序后追加自己的定时器0中断服务程序代码(修改配置文件Conf_tny.A51)。
二,单任务、多任务和基于RTX51 Tiny程序的比较
单任务程序:
 嵌入式程序和标准C程序都是从main函数开始执行的,在嵌入式应用中,main通常是一个无限循环,可以认为是一个持续执行的单个任务,例如:
void main(void)
{
	while(1){
		do_something( );   //一直循环执行do_something任务
	}
}

多任务程序:
许多C程序通过在一个循环里调用服务函数(或任务)来实现伪多任务调度。如:
void main(void)
{
	while(1){
		key_scan( );    //键盘扫描
		do_key( );      //处理按键事件
		ctr_adj( );     //调整控制器
	}
}
   该例中,每个函数执行一个单独的操作或任务,函数(或任务)按次序依次执行。当任务越来越多,调度问题就被自然而然的提出来了。例如,如果ctr_adj( )函数执行时间较长,主循环就可能需要较长的时间才能返回来执行key_scan( )函数,导致遗漏部分按键事件。当然,可以在主循环中更频繁的调用key_scan( )函数以纠正这个问题,但最终这个方法还是会失效。

RTX51 Tiny程序:

当使用Rtx51Tiny时,为每个任务建立独立的任务函数,例如:

void job0(void)  _task_  0
{
	os_create_task(1);    //创建任务1
	os_create_task(2);    //创建任务2
	os_create_task(3);    //创建任务3
	os_delete_task(0);    //删除任务0
}

void  job1(void)  _task_  1      //键盘扫描任务
{
	while(1){
		key_scan( );  
	}
}

void  job2(void)  _task_  2      //处理按键事件任务
{
	while(1){
		do_key( );    
	}
}

void  job3(void)  _task_  3      //调整控制器任务
{
	while(1){
		ctr_adj( );     
	}
}

   该例中,每个函数定义为一个RTX51 Tiny任务。RTX51 Tiny程序不需要main函数,取而代之,RTX51 Tiny从任务0开始执行。在典型的应用中,任务0简单的建立所有其他的任务。


   学习RTX51 Tiny的书籍比较少,其实最好的学习资料是Keil uVision中自带的用户手册,按下图所示方式可打开:



               






  • 12
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
DS1302电子时钟是一款常用的实时时钟芯片,具有时钟、日历和RAM功能。使用RTX51 Tiny操作系统可以方便地实现DS1302电子时钟的功能。 首先,需要初始化DS1302芯片。通过设置控制寄存器,可以使DS1302进入写操作状态,并分别设置时钟、日历和RAM的初始数值。 接着,可以通过读取DS1302的寄存器,获取当前的时间和日期信息。使用RTX51 Tiny操作系统提供的定时器功能,可以定期读取DS1302的寄存器,实时更新时钟显示。 同时,RTX51 Tiny操作系统也可以提供键盘输入功能,可以通过设置按键中断来控制DS1302电子时钟的功能。例如,可以通过按键调整时间和日期,设置闹钟等。 另外,RTX51 Tiny操作系统还可以实现多任务处理。可以通过创建多个任务,分别处理DS1302电子时钟的不同功能。例如,一个任务负责时钟的显示,一个任务负责日期的显示,一个任务负责闹钟等功能。通过任务切换,可以使DS1302电子时钟的各个功能同时运行。 最后,最好添加上异常处理功能,例如当DS1302芯片电源异常或者时钟频率异常时,可以通过RTX51 Tiny操作系统的异常处理机制进行相应的处理和提示。 综上所述,使用RTX51 Tiny操作系统可以实现DS1302电子时钟的功能,包括时钟、日历、RAM的读写,以及键盘输入、多任务处理等。这样的实现可以提高DS1302电子时钟的可靠性和易用性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值