📄 test.c
字号:
/*
*********************************************************************************************************
* uC/OS-II
* The Real-Time Kernel
*
* (c) Copyright 1992-1998, Jean J. Labrosse, Plantation, FL
* All Rights Reserved
*
* V2.00
*
* EXAMPLE #1
* by Karl Wannenmacher
* Nov 2000
*********************************************************************************************************
*/
#include "includes.h"
//Constants
#define TASK_STK_SIZE 512 // Size of each task's stacks (# of WORDs) = 1KBytes
#define N_TASKS 2 // Number of identical tasks
//Global Data
OS_STK TaskStk[N_TASKS][TASK_STK_SIZE]; // Tasks stacks
OS_EVENT *pReceiverMailBox;
OS_EVENT *pSenderMailBox;
//Function Prototypes
void ReceiverTask(void *data);
void SenderTask(void *data);
/*$PAGE*/
//Main
void main (void)
{
DP2 = 0xffff;
OSInit();
pReceiverMailBox = OSMboxCreate((void*)0);
pSenderMailBox = OSMboxCreate((void*)0);
OSTaskCreate(ReceiverTask, (void *)0, (void *)&TaskStk[0][TASK_STK_SIZE - 1], 3);
OSTaskCreate(SenderTask, (void *)0, (void *)&TaskStk[1][TASK_STK_SIZE - 1], 4);
OSStart();
}
//Tasks
void SenderTask (void *data)
{
INT8U count = 0;
INT8U error;
data = data;
while (1)
{
for (count=0;count<10;count++)
{
OSMboxPost(pSenderMailBox, (void*)&count);
OSMboxPend(pReceiverMailBox, 0, &error);
}
}
}
void ReceiverTask (void *data)
{
INT8U *count;
INT8U error;
data = data;
OSTickISRInit();
while (1)
{
count = (INT8U*)OSMboxPend(pSenderMailBox, 0, &error);
P2 = *count;
OSTimeDlyHMSM(0, 0, 5, 0);
OSMboxPost(pReceiverMailBox, (void*)1);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -