>51单片机多任务系统的工程模板<
RTX51-Tiny是一种实时操作系统(RTOS),可以用它来建立多个任务同时执行的程序。
参 数
| 范 围
| 最大任务数
| 16
| 最大活动任务
| 16
| 代码空间需求
| 900字节最大
| 数据空间需求
| 7字节
| 栈空间需求
| 3字节/任务
| 外部RAM需求
| 0字节
| 定时器
| 0
| 系统时钟因子
| 1000~65535
| 中断等待
| 20个周期或更少
| 上下文切换时间
| 100~700个周期
|
单片机源程序如下:- #include "main.h"
- int flag = 0; //LED标志位
- /*--------------------------------------------------------------------------------------------
- 初始任务
- --------------------------------------------------------------------------------------------*/
- void task_create(void) _task_ 0
- {
- UGL_Delay(0); //延时没有用(防止编译器警告)
-
- os_create_task(1); //创建任务1
- os_create_task(2); //创建任务2
- os_delete_task(0); //删除任务0
- }
- /*--------------------------------------------------------------------------------------------
- LED任务
- --------------------------------------------------------------------------------------------*/
- void task_led(void) _task_ 1
- {
- while(233)
- {
- if(flag)
- {
- os_wait2(K_IVL,50); //系统延时50个Tick
- LED = ~LED;
- }
- else
- {
- LED = 1;
- }
- }
- }
- /*--------------------------------------------------------------------------------------------
- 按键任务
- --------------------------------------------------------------------------------------------*/
- void task_switch(void) _task_ 2
- {
- while(233)
- {
- if(!S2) //下降沿生效
- {
- while(!S2);
- flag = 1;
- }
- if(!S3) //下降沿生效
- {
- while(!S3);
- flag = 0;
- }
- os_wait2(K_IVL,1); //系统延时1个Tick
- }
- }
复制代码
Keil代码下载:
51_RTOS_P.zip
(60.13 KB, 下载次数: 52)
|