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

📄 app.c

📁 最新的uC/OS-II2.85
💻 C
字号:
/*
*********************************************************************************************************
*                                                uC/OS-II                                               
*
*                                      (c) Copyright 2007, SUPERMAN
*                                           All Rights Reserved
*
*
*
* Description:  An example application that test the new features of uC/OS-II version 2.85.
*********************************************************************************************************
*/

#include "includes.h"

/*
*********************************************************************************************************
*                                           PRIVATE MICRO
*********************************************************************************************************
*/


/*
*********************************************************************************************************
*                                             CONSTANTS
*********************************************************************************************************
*/

/*
*********************************************************************************************************
*                                           GLOBAL VARIABLES
*********************************************************************************************************
*/
static  OS_STK    AppTaskStartStk [APP_TASK_START_STK_SIZE];
static  OS_STK    AppTaskUserIFStk [APP_TASK_USER_IF_STK_SIZE];
static  OS_STK    AppTaskTestTimerStk [APP_TASK_TEST_TIMER_STK_SIZE];

static  OS_TMR    *UartOutputTmr;
/*
*********************************************************************************************************
*                                             PROTOTYPES
*********************************************************************************************************
*/
static  void  AppTaskCreate(void);
static  void  AppTmrCallback(void *ptmr, void *callback_arg);
static  void  AppTaskStart(void *p_arg);
static  void  AppTaskUserIF(void *p_arg);
static  void  AppTaskTestTimer(void *p_arg);

/*
*********************************************************************************************************
*                                              main()
*
* Description: This is the 'standard' C startup entry point.  main() does the following:
*
*              1) Outputs a 'sign on' message on the serial port
*              2) Initialize uC/OS-II
*              3) Create a single task which will create the other application tasks.
*              4) Start uC/OS-II
*
* Arguments  : None
*
* Returns    : main() should NEVER return
*
* Note(s)    : 1) It is assumed that interrupts are DISABLED when main() is called.  Interrupts will
*                 be enabled by the first task that uC/OS-II starts.
*********************************************************************************************************
*/
int  main (void)
{


    BSP_IntDisAll();                              /* Make sure interrupts are disabled                 */

    OSInit();                                     /* Initialize uC/OS-II                               */

    OSTaskCreate(AppTaskStart,
                   (void *)0,
                   &AppTaskStartStk[APP_TASK_START_STK_SIZE - 1],
                   APP_TASK_START_PRIO);

    OSStart();                                    /* Start multitasking                                */
}
/*
*********************************************************************************************************
*                                             AppTaskStart()
*
* Description: This is the first task executed by uC/OS-II following OSStart().  It call
* Arguments  : p_arg        Argument passed to this task when task is created.  The argument is not used.
*
* Returns    : None
*********************************************************************************************************
*/

static  void  AppTaskStart (void *p_arg)
{
    CPU_INT08U  i;


    (void)p_arg;                          /* Prevent compiler warning by doing something with argument */

    BSP_Init();                           /* Initialize the board                                      */

#if OS_TASK_STAT_EN > 0
    OSStatInit();                         /* Initialize uC/OS-II's statistics                          */
#endif


    AppTaskCreate();                      /* Create application tasks                                  */

   while (OS_TRUE) {                    
        for (i = 1; i < 4; i++) {
            LED_Off(0);
            LED_On(i);
            OSTimeDlyHMSM(0,0,0,50);
        }

        for (i = 3; i > 0; i--) {
            LED_Off(0);
            LED_On(i);
            OSTimeDlyHMSM(0,0,0,50);
        }
    } 
//	OSTaskDel(OS_PRIO_SELF);
}
/*
*********************************************************************************************************
*                                         USER INTERFACE TASK
*********************************************************************************************************
*/
static  void  AppTaskUserIF (void *p_arg)
{
	BYTE SendContent[] = "Test the uC/OS-II v2.85\n\r";
	while(OS_TRUE) {
		Ser_WrStr(SendContent);
		OSTimeDlyHMSM(0, 0, 1, 0);
	}	

}
/*
*********************************************************************************************************
*                                         USER INTERFACE TASK
*********************************************************************************************************
*/
static  void  AppTaskTestTimer (void *p_arg) 
{
	INT8U err;
	CPU_INT08U      s[20];

	OS_StrCopy(s, "Timer xx");
	(void)p_arg;
	UartOutputTmr = OSTmrCreate(   5,
								   0,
								OS_TMR_OPT_ONE_SHOT,
								(OS_TMR_CALLBACK)AppTmrCallback,
								(void *)0,
								s,
								&err);
	for (;;) {
		OSTmrStart(UartOutputTmr,&err);
		OSTimeDlyHMSM(0, 0, 0, 500);
	}
}
/*	    
*********************************************************************************************************
*                                      CREATE APPLICATION TASKS
*********************************************************************************************************
*/

static  void  AppTaskCreate (void)
{
    INT8U  err;


    OSTaskCreate(AppTaskUserIF,
                    (void *)0,
                    (OS_STK *)&AppTaskUserIFStk[APP_TASK_USER_IF_STK_SIZE - 1],
                    APP_TASK_USER_IF_PRIO);
    OSTaskCreate(AppTaskTestTimer,
                    (void *)0,
                    (OS_STK *)&AppTaskTestTimerStk[APP_TASK_TEST_TIMER_STK_SIZE - 1],
                    APP_TASK_TEST_TIMER_PRIO);	  
/*	OSTaskCreate(AppTaskCC2420Tx,
					(void *)0,
					(OS_STK *)&AppTaskCC2420TxStk[APP_TASK_CC2420_TX_STK_SIZE - 1],
					APP_TASK_CC2420_TX_PRIO);
	OSTaskCreate(AppTaskCC2420Rx,
					(void *)0,
					(OS_STK *)&AppTaskCC2420RxStk[APP_TASK_CC2420_RX_STK_SIZE - 1],
					APP_TASK_CC2420_RX_PRIO);
*/
#if OS_TASK_NAME_SIZE > 13
    OSTaskNameSet(APP_TASK_USER_IF_PRIO, "User I/F", &err);
#endif	
}
/*	    
*********************************************************************************************************
*                                      UartOutputFnct
*********************************************************************************************************
*/
static  void  AppTmrCallback (void *ptmr, void *callback_arg)
{
	LED_Toggle(4);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -