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

📄 appmain.c

📁 这是一个嵌入式系统的ucos-ii的移植程序。
💻 C
字号:
#include "INCLUDES.H"

#define  TASK_STK_SIZE                 128      
extern void vInitLED(void);
extern void vLEDOn(void);
extern void init_Tick(void);

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_EVENT     *Mbox1;                             
OS_EVENT     *Mbox2; 
OS_EVENT     *Mbox3;                              
OS_EVENT     *Mbox4; 



#define          TASK_START_PRIO    10                
#define          TASK_1_PRIO        12
#define          TASK_2_PRIO        13
#define          TASK_3_PRIO        14
#define          TASK_4_PRIO        15

extern	void	vInitLED( void );
extern  void  vInitKey( void );
extern	void	vLEDOn( void );
extern	void	vLEDOff( void );
extern	void	vSingleOn(unsigned char number);
extern	void	vSingleOff(unsigned char number);

static  void  TaskStartCreateTasks(void);
void	TaskStart(void *pdata); 
void	Task1(void *pdata); 
void	Task2(void *pdata); 
void	Task3(void *pdata); 
void	Task4(void *pdata);                   


void main(void)
{
    OSInit();
	vInitLED();
	vInitKey();
    OSTaskCreate(TaskStart,(void *)0,&TaskStartStk[TASK_STK_SIZE-1],TASK_START_PRIO);
	OSStart();   	
}

void  TaskStart(void *pdata)
{
	pdata=pdata;
    	init_Tick();
    	Mbox1 = OSMboxCreate((void *)0);                    
 	Mbox2 = OSMboxCreate((void *)0);
  	Mbox3 = OSMboxCreate((void *)0);
 	Mbox4 = OSMboxCreate((void *)0);
	TaskStartCreateTasks();   
	
	while(1)
	{
	asm(" nop ");
    	OSCtxSwCtr = 0;                                    /* Clear context switch counter             */
        OSTimeDly(10); 
                             
		
	}
}
static  void  TaskStartCreateTasks (void)
{
	OSTaskCreate(Task1,(void *)0,&Task1Stk[TASK_STK_SIZE-1],TASK_1_PRIO);
	OSTaskCreate(Task2,(void *)0,&Task2Stk[TASK_STK_SIZE-1],TASK_2_PRIO);
	OSTaskCreate(Task3,(void *)0,&Task3Stk[TASK_STK_SIZE-1],TASK_3_PRIO);
	OSTaskCreate(Task4,(void *)0,&Task4Stk[TASK_STK_SIZE-1],TASK_4_PRIO);
}
void  Task1 (void* pdata)
{
    INT8U       err;
    INT16U      time;                      
    

    for (;;) {
        OSMboxPend(Mbox1, 0, &err);
    	vSingleOff(1);
        OSTimeDly(100);                     
        vSingleOn(1);
    }
}	

void  Task2 (void* pdata)
{
    
    INT8U       err;
    pdata=pdata;                    
    

    for (;;) {
        OSMboxPend(Mbox2, 0, &err);
    	vSingleOff(2);
        OSTimeDly(100);                      
        vSingleOn(2);
    }
}	
void  Task3 (void* pdata)
{
    INT8U       err;
    INT16U      time;                   
  

    for (;;) {
        OSMboxPend(Mbox3, 0, &err);
    	vSingleOff(3);
        OSTimeDly(100);                      
        vSingleOn(3);
    }
}	
void  Task4 (void* pdata)
{
    INT8U       err;
    INT16U      time;                   
    

    for (;;) {
        OSMboxPend(Mbox4, 0, &err);
    	vSingleOff(4);
        OSTimeDly(100);                       
        vSingleOn(4);
    }
}	

⌨️ 快捷键说明

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