⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 能在SST89E516单片机上运行的多任务实时操作系统ucosii v2.84 for keil C51源码,在硬件上已验证通过调试
💻 C
字号:
/* 本例程 uCOS-II 版本为 V2.84 于 keil C51 V8.08a 下的工程环境编译,仅创建两个LED闪烁任务于 P1.0 与 P1.1 上,
P1.0 每隔 1/2 秒闪动一次,P1.1 每隔 1/3 秒闪动一次,而此例程运行于内 RAM 仅需 160 Byte 的51内核单片机即可。*/ 

#include <ucos_ii.h> /* 此例程之 8051 使用 11.0592MHz 晶振时,依 Timer0 中断发生的 TimeTicks 为每秒 50 次 */

sbit LED0=P1^0;
sbit LED1=P1^1;

OS_STK Task0Stack[MaxStkSize];		/* Define The Task0 Stack 定义用户任务0的堆栈 */
OS_STK Task1Stack[MaxStkSize];		/* Define The Task1 Stack 定义用户任务0的堆栈 */

void Task0(void *ppdata)
{
ppdata = ppdata;					/* 避免编译警告 */
for(;;)
	{
	LED0 = ~LED0;      				/* 任务 0 的程序添加于此 */
    OSTimeDly(OS_TICKS_PER_SEC/2);	/* 宣告这任务进入 1/2 秒的延时状态 */	
    }
}

void Task1(void *ppdata)
{
ppdata = ppdata; 					/* 避免编译警告 */   
for(;;)
	{
	LED1 = ~LED1; 					/* 任务 1 的程序添加于此 */
    OSTimeDly(OS_TICKS_PER_SEC/3);	/* 宣告这任务进入 1/3 秒的延时状态 */     
    }
}

void main(void)
{
    OSInit();
	TargetInit();					/* 目标板初始化 */   
	OSTaskCreate(Task0,(void *)0,&Task0Stack[MaxStkSize-1],0);
	OSTaskCreate(Task1,(void *)0,&Task1Stack[MaxStkSize-1],1);
	OSStart();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -