📄 example.c
字号:
/*
**********************************************************************************************
* uC/OS-II
* The Real-Time Kernel
* ADSP-21065L SHARC Specific Code version 1.1
*
* File : EXAMPLE.C
* By : Bertrand Hurst, Francois Veuve, Cedric Bornand (dspos@engineer.com)
* CETT - MIS
* Rte de Galilee 15
* 1400 Yverdon
* Switzerland
**********************************************************************************************
*/
#ifndef OS_MASTER_FILE
#include "includes.h"
#endif
/**********************************************************************************************************
* CONSTANTS
**********************************************************************************************************/
#define TASK_STK_SIZE 256 /* Size of each task's stack */
#define TASK_START_PRIO 5 /* Priorities of tasks */
#define TASK_1_PRIO 13
#define TASK_2_PRIO 14
/**********************************************************************************************************
* VARIABLES
**********************************************************************************************************/
OS_STK TaskStartStk[TASK_STK_SIZE]; /* Stack for StatrUp task */
OS_STK Task1Stk[TASK_STK_SIZE]; /* Stack for task #1 */
OS_STK Task2Stk[TASK_STK_SIZE]; /* Stack for task #2 */
INT32U Delay_1 = 1;
INT32U Delay_2 = 5;
/**********************************************************************************************************
* FUNCTION PROTOTYPES
**********************************************************************************************************/
void TaskStart(void *dat); /* Function prototypes of tasks */
void Task1(void *dat);
void Task2(void *dat);
/**********************************************************************************************************
* MAIN
**********************************************************************************************************/
void main (void)
{
OSInit(); /* Initialises uC/OS-II */
/* Creates the starting task */
OSTaskCreate(TaskStart, (void *)0, &TaskStartStk[TASK_STK_SIZE-1], TASK_START_PRIO);
OSStart(); /* Starts multitasking */
}
/**********************************************************************************************************
* Starting task
**********************************************************************************************************/
void TaskStart (void *dat)
{
dat = dat; /* Prevent compiler warning */
TimerInit(); /* Initialises the DSP's timer */
/* Creates task #1 */
OSTaskCreate(Task1, &Delay_1, &Task1Stk[TASK_STK_SIZE-1], TASK_1_PRIO);
/* Creates task #2 */
OSTaskCreate(Task2, &Delay_2, &Task2Stk[TASK_STK_SIZE-1], TASK_2_PRIO);
OSTaskDel(TASK_START_PRIO); /* Self deletion */
}
/**********************************************************************************************************
* Task #1
**********************************************************************************************************/
void Task1 (void *pdat)
{
pdat = pdat; /* Prevent compiler warning */
for (;;)
{
OSTimeDly(*(INT32U*)pdat); /* Wait for 1 tick */
set_flag(1,2); /* Toggles FLAG1 output */
}
}
/**********************************************************************************************************
* Task #2
**********************************************************************************************************/
void Task2 (void *pdat)
{
pdat = pdat; /* Prevent compiler warning */
OSTimeDly(1); /* Wait for 1 tick */
for (;;)
{
OSTimeDly(*(INT32U*)pdat); /* Wait for 5 ticks */
set_flag(2,2); /* Toggles FLAG2 output */
}
}
/********************************************** End of file **********************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -