📄 ex1.c
字号:
#include <includes.h>
#include <serial.h>
void TaskA(void*) reentrant;
void TaskB(void*) reentrant;
void TaskC(void*) reentrant;
void SYSCLK_Init (void) reentrant;
OS_STK TaskStartStkA[MaxStkSize];//注意:在ASM文件中设置?STACK空间为40H即64。
OS_STK TaskStartStkB[MaxStkSize];
OS_STK TaskStartStkC[MaxStkSize];
void main(void)
{
// Disable watchdog timer
EA=0;
WDTCN = 0xde;
WDTCN = 0xad;
EA=1;
// SYSCLK_Init();
OSInit();
InitTimer0();
InitSerial();
InitSerialBuffer();
OSTaskCreate(TaskA, (void *)0, TaskStartStkA,2);
OSTaskCreate(TaskB, (void *)0, TaskStartStkB,3);
OSTaskCreate(TaskC, (void *)0, TaskStartStkC,4);
OSStart();
}
void TaskA(void *pdat) reentrant
{
pdat=pdat;
PrintStr("\nuC/OS-II is running.\n");
for(;;){
PrintStr("Task A is active.\n");
OSTimeDly(2);
}
}
void TaskB(void *pdat) reentrant
{
pdat=pdat;
for(;;){
PrintStr("Task B is active.\n");
OSTimeDly(4);
}
}
void TaskC(void *pdat) reentrant
{
pdat=pdat;
for(;;){
PrintStr("Task C is active.\n\n");
OSTimeDly(6);
}
}
void SYSCLK_Init (void) reentrant
{
int i; // delay counter
OSCXCN = 0x67; // start external oscillator with
// 22.1184MHz crystal
for (i=0; i < 256; i++) ; // Wait for osc. to start up
while (!(OSCXCN & 0x80)) ; // Wait for crystal osc. to settle
OSCICN = 0x88; // select external oscillator as SYSCLK
// source and enable missing clock
// detector
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -