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

📄 test.c

📁 周立功的 51单片机的UCOS嵌入式系统源代码
💻 C
字号:
/*
*********************************************************************************************************
*                                                uC/OS-II
*                                          The Real-Time Kernel
*
*                           (c) Copyright 1992-2002, Jean J. Labrosse, Weston, FL
*                                           All Rights Reserved
*
*                                               EXAMPLE #1
*********************************************************************************************************
*/
#include  "config.h"
#include  "harder.h"
#include  "libvic.h"
#include   "libuart.h"


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

#define  TASK_STK_SIZE                  128      /* Size of each task's stacks (# of WORDs)            */

/*
*********************************************************************************************************
*                                               VARIABLES
*********************************************************************************************************
*/

OS_STK        TaskStartStk[TASK_STK_SIZE];
OS_STK        Task1Stk[TASK_STK_SIZE];
OS_STK        Task2Stk[TASK_STK_SIZE];
OS_STK        Task3Stk[TASK_STK_SIZE];
OS_STK        Task4Stk[TASK_STK_SIZE];
OS_STK        Task5Stk[TASK_STK_SIZE];

   
/*
*********************************************************************************************************
*                                           FUNCTION PROTOTYPES
*********************************************************************************************************
*/

        void  Task1(void *data);                       /* Function prototypes of tasks                  */
        void  Task2(void *data);                       /* Function prototypes of tasks                  */        
        void  Task3(void *data);                       /* Function prototypes of tasks                  */
        void  Task4(void *data);                       /* Function prototypes of tasks                  */        
        void  Task5(void *data);                       /* Function prototypes of tasks                  */
        void  TaskStart(void *data);                  /* Function prototypes of Startup task           */

/*$PAGE*/
/*
*********************************************************************************************************
*                                                MAIN
*********************************************************************************************************
*/
 void TargetInit(void);
 
int main (void)
{
 
    OSInit();    
    Beep(3);                                          /* Initialize uC/OS-II                      */
    OSTaskCreate(TaskStart, (void *)0, &TaskStartStk[TASK_STK_SIZE - 1], 0);
    OSStart();                                             /* Start multitasking                       */
}

/*
*********************************************************************************************************
*                                              STARTUP TASK
*********************************************************************************************************
*/
void  TaskStart (void *pdata)
{
   pdata = pdata;                                         /* Prevent compiler warning                 */
   
   TargetInit();  
   ComInit(COM1,115200);
         
   OSTaskCreate(Task1, (void *)0, &Task1Stk[TASK_STK_SIZE - 1], 1);
   OSTaskCreate(Task2, (void *)0, &Task2Stk[TASK_STK_SIZE - 1], 2);
   OSTaskCreate(Task3, (void *)0, &Task3Stk[TASK_STK_SIZE - 1], 3);
   OSTaskCreate(Task4, (void *)0, &Task4Stk[TASK_STK_SIZE - 1], 4);
   OSTaskCreate(Task5, (void *)0, &Task5Stk[TASK_STK_SIZE - 1], 5);
   OSTaskDel(0);      
}

void  Task1 (void *pdata)
{
   pdata = pdata;                                         /* Prevent compiler warning                 */
   SetPinMode(LED1,0,0);   
   SetPinMode(LED2,0,0);   
   SetPinMode(LED3,0,0);
   SetPinMode(LED4,0,0);
   SetPin(LED1);
   SetPin(LED2);
   SetPin(LED3);
   SetPin(LED4);
   for (;;)
     {      
      CommSendString(COM1,"\r\nTask1");
      OSTimeDlyHMSM(0, 0,1, 0);                         /* Wait one second                          */
      CplPin(LED1);     
      OSTimeDlyHMSM(0, 0,1, 0);                         /* Wait one second                          */
      CplPin(LED2);     
      OSTimeDlyHMSM(0, 0,1, 0);                         /* Wait one second                          */
      CplPin(LED3);
      OSTimeDlyHMSM(0, 0,1, 0);                         /* Wait one second                          */
      CplPin(LED4);      
    }    
}


void  Task2 (void *pdata)
{
  
    int i=0;
      
   
    for (;;)
     {
       CommSendString(COM1,"\r\nTask2");                   
       if(i>=16)
        i=0;
       Display(i++);
       OSTimeDlyHMSM(0, 0,1,0);
     }        
}


void  Task3 (void *pdata)
{
    pdata = pdata;                                       /* Prevent compiler warning                 */
   
     for (;;)
     {      
       ComPutChar(COM1,ComGetChar(COM1));
       OSTimeDlyHMSM(0, 0,1,0);                         /* Wait one second                          */ 
    }    
    
}

void  Task4 (void *pdata)
{
 
     pdata = pdata;      
     for (;;)
     {
       CommSendString(COM1,"\r\nTask5");
       OSTimeDlyHMSM(0, 0,1,0);                                            
     }       
}

void  Task5 (void *pdata)
{
                              
    pdata = pdata; 
    
    for (;;)
    {          
       CommSendString(COM1,"\r\nTask5");
       OSTimeDlyHMSM(0, 0,1,0);     
    }     
}




   


⌨️ 快捷键说明

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