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

📄 os_main.c

📁 UCOS在凌阳16位单片机SPCE061A上的移植的源码
💻 C
字号:
//******************************************************************
//                       单位: 华中科技大学光电子工程系
//                       作者: 张利
//                       文件: OS_MAIN.c   for  unsp
//******************************************************************


#include "includes.h"

#define MAX_STK_SIZE  50

void delay();

void TaskA(void* data);
void TaskB(void* data);
void TaskC(void* data);


OS_STK TaskAStk[MAX_STK_SIZE+1];
OS_STK TaskBStk[MAX_STK_SIZE+1];
OS_STK TaskCStk[MAX_STK_SIZE+1];

char StringA[10]="Task A\n\t";
char StringB[10]="Task B\n\t";
char StringC[10]="Task C\n\t";

OS_EVENT* sem;

main()
{
	
	OSInit();
	
	// chip  initial here
	sem=OSSemCreate(1);
	SerialInit();
	OSTaskCreate(TaskA,(void *)0,TaskAStk,2);
	OSTaskCreate(TaskB,(void *)0,TaskBStk,3);
	OSTaskCreate(TaskC,(void *)0,TaskCStk,4);
	
	OSStart();
	
}

void TaskA(void* data)
{
  INT8U erra;
  OSTickISR();
  
  while(1)
  {
		//Output(StringA,7);
		OSSemPend(sem,0,&erra);
		Output(StringA,8);
		OSSemPost(sem);
		OSTimeDly(OS_TICKS_PER_SEC);
		
  }
}

void TaskB(void* data)
{
	INT8U errb;
	while(1)
	{
		OSSemPend(sem,0,&errb);
		Output(StringB,8);
		OSSemPost(sem);
	    OSTimeDly(2*OS_TICKS_PER_SEC);
	    
    }
}

void TaskC(void* data)
{
	INT8U errc;
	while(1)
	{
		OSSemPend(sem,0,&errc);
		Output(StringC,8);
		OSSemPost(sem);
		OSTimeDly(OS_TICKS_PER_SEC);
		
	}
}

⌨️ 快捷键说明

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