📄 os_main.c
字号:
//******************************************************************
// 单位: 福建三明学院物理与机械工程系
// 作者: 林峰彬 (一水寒)
// QQ: 364700581
// 文件: OS_CPU_C.c for unsp
//******************************************************************
#include <ucos_ii.h>
#include "LCD1602.h"
#define MAX_STK_SIZE 50
void delay();
void Task(void* data);
void TaskA(void* data);
void TaskB(void* data);
void TaskC(void* data);
OS_STK TaskAStk[MAX_STK_SIZE];
OS_STK TaskBStk[MAX_STK_SIZE];
OS_STK TaskCStk[MAX_STK_SIZE];
char StringA[]="Task A";
char StringB[]="Task B";
char StringC[]="Task C";
char TaskDataA[]={(char)&StringA[0],0,0,7,0};
char TaskDataB[]={(char)&StringB[0],9,0,15,0};
char TaskDataC[]={(char)&StringC[0],0,1,7,1};
OS_EVENT* sem;
/*int main(void)
{
LCD_Initial();
GotoXY(0,0);
Print(StringA);
while(1);
}*/
int main(void)
{
LCD_Initial();
OSInit();
// chip initial here
sem=OSSemCreate(1);
OSTaskCreate(Task,&TaskDataA[0],&TaskAStk[MAX_STK_SIZE-1],2);
OSTaskCreate(Task,&TaskDataB[0],&TaskBStk[MAX_STK_SIZE-1],3);
OSTaskCreate(Task,&TaskDataC[0],&TaskCStk[MAX_STK_SIZE-1],4);
GotoXY(9,1);
PrintNO(OSVersion());
OSStart();
}
void Task(void *data)
{
INT8U erra;
INT8U i;
GotoXY(*(char*)(data+1),*(char*)(data+2));
Print((char*)*(char*)data);
OSTickISR();
while(1)
{ if(i==10)i=0;
//Output(StringA,7);
OSSemPend(sem,0,&erra);
GotoXY(*(char*)(data+3),*(char*)(data+4));
LCD_Write(LCD_DATA,(i++)+'0');
OSSemPost(sem);
OSTimeDly(OS_TICKS_PER_SEC);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -