⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 example.c

📁 c的源码
💻 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 + -