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

📄 main.c

📁 为ucos ii在arm单片机lpc2148上的移植
💻 C
字号:
/*

                         \\\|///
                       \\  - -  //
                        (  @ @  )
+---------------------oOOo-(_)-oOOo-------------------------+
|                         uC/OS                             |
|            ported to LPC2103 ARM7TDMI-S CPU               |
|                     by Xiaoran Liu                        |
|                       2007.12.16                          |
|                 ZERO research Instutute                   |
|                      www.the0.net                         |
|                            Oooo                           |
+----------------------oooO--(   )--------------------------+
                      (   )   ) /
                       \ (   (_/
                        \_)     

*/

#include <lpc2103.h>
#include "includes.h"
#include "OS_CPU.h"
#include "bsp.h"
#include "tft018.h"

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

#define  TASK_STK_SIZE                  128  
INT8U x=0,y=0,time=0;    /* Size of each task's stacks (# of WORDs)            */


// 发光管接在P0.31引脚 

//#define	BEEP	(1<<24)

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

OS_STK        TaskStartStk[TASK_STK_SIZE];
OS_STK        Task1Stk[TASK_STK_SIZE];



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

        void  TaskStart(void *data);                  /* Function prototypes of Startup task           */
        void  Task1(void *data);    
		                    /* Function prototypes of tasks                  */


void  Task1 (void *pdata) {
	pdata = pdata;  
	
    	for(;;) {
	if(time==20)
	{
	OSTaskSuspend(1);
	}
	if(time==40)
	{
	OSTaskResume(1);
	}
	time++;	  
	if(x>100)
	{
	x=0;
	y+=16;
	}
	    LCD_PutString(x,y,"Y",Cyan,Blue);
			OSTimeDly(5);
		x+=8;
    
	   	}  
	                                   /* Prevent compiler warning                 */
//	OSTaskCreate(Task2,(void *)0, &Task2Stk[TASK_STK_SIZE - 1], 3);



	}

 void  Task2 (void *pdata) {
	pdata = pdata;  
	
    	for(;;) {
	if(time==20)
	{
	OSTaskSuspend(1);
	}
	if(time==40)
	{
	OSTaskResume(1);
	}
	time++;	  
	if(x>100)
	{
	x=0;
	y+=16;
	}
	    LCD_PutString(x,y,"Z",Cyan,Blue);
			OSTimeDly(5);
		x+=8;
    
	   	}  
	                                   /* Prevent compiler warning                 */
//	OSTaskCreate(Task2,(void *)0, &Task2Stk[TASK_STK_SIZE - 1], 3);



	}
/**********************************************************************************************************
*                                              STARTUP TASK
*********************************************************************************************************
*/
void  TaskStart (void *pdata)
{
   pdata = pdata;                                         /* Prevent compiler warning                 */
   
   BSP_init();  
BacklightOn();
	LCD_Init();
	LCD_Clear_Screen(Blue);

   OSTaskCreate(Task1, (void *)0, &Task1Stk[TASK_STK_SIZE - 1], 1);
   
   	 	for(;;) {
	if(x>100)
	{
	x=0;
	y+=16;
	}
	    LCD_PutString(x,y,"M",Cyan,Blue);
			OSTimeDly(15);
		x+=8;
    
	   	}
	

   OSTaskDel(0);      
}

/*
*********************************************************************************************************
*                                                MAIN
*********************************************************************************************************
*/

int main(void) {
    OSInit();    
    OSTaskCreate(TaskStart, (void *)0, &TaskStartStk[TASK_STK_SIZE - 1], 0);
    OSStart();                                             /* Start multitasking                       */
	}

⌨️ 快捷键说明

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