📄 os_main.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 + -