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

📄 main2.c

📁 该文件为S3C44B0硬件平台配置具体函数的初始化及其SD卡读写程序
💻 C
字号:

/*
*************************************************************************************************************
*                                       ----------------------
*                                          工业PDA的主调试程序                                      
*                                       ----------------------
* 文件名称 : main.C
*
* 文件说明 : 
*            
*
* 文件作者 : 
*
* 作者单位 :北京合众思壮科技有限责任公司
* 
* 创建日期 : 
*
* 版本声明 : V1.0
* ----------------------------------------------------------------------------------------------------------- 
* 修改日期 : 
*
* 修改作者 : 
*
* 修改内容 : 
*
* 版本声明 : 
*
* 目前功能 : 
* -----------------------------------------------------------------------------------------------------------
*************************************************************************************************************
*/

#include "..\Application\inc\config.h"

#define El_on  	        rPDATE |= 0x1
#define El_off          rPDATE &= (~0x1)
#define LCD_on_init 	rPDATE = rPDATE | ((1<<3))
#define LCD_off_init    rPDATE = rPDATE & (~(1<<3))


// allocate memory for tasks' stacks 
#ifdef SEMIHOSTED
	#define	STACKSIZE	(64+SEMIHOSTED_STACK_NEEDS)
#else
	#define	STACKSIZE	256
#endif

OS_STK Stack1[STACKSIZE]= {0, };
OS_STK Stack2[STACKSIZE]= {0, };
OS_STK Stack3[STACKSIZE]= {0, };
OS_STK Stack0[STACKSIZE]= {0, };

//extern OS_EVENT *TouchSem;
//OS_EVENT *TouchSem;
//OS_EVENT *TouchSem1;
// mailbox event control blocks 
//OS_EVENT *Mbox1;
//OS_EVENT *Mbox2;
//OS_EVENT *Mbox3;

char PassMsg[] = "SW44B0";

/*
*************************************************************************************************************
*
*
*
*
*
*
*
*************************************************************************************************************
*/

void Task2(void *Id)
{
	INT8U  err;
	
	for (;;)
	{
    	//OSSemPend(TouchSem, 0, &err);
 		GUI_TOUCH_Exec();
  		Uart_Printf(0,"this is TRIAGGER \r\n");
   		OSTimeDlyHMSM(0,0,0,50);
	}
}

/*
*************************************************************************************************************
*
*
*
*
*
*
*
*************************************************************************************************************
*/

void Task3(void *Id)
{
	
  	Uart_Printf(0,"Task3() called\r\n");
		GUI_SetFont(&GUI_Font8x16x2x2);
		GUI_DispStringAt("this is a demo",0,0);
	for(;;)
	{
		Uart_Printf(0,"Task3() called\r\n");
		GUI_FillRect(20,60,70,70);
		OSTimeDlyHMSM(0,0,1,0);                               
	}
}

/*
*************************************************************************************************************
*
*
*
*
*
*
*
*************************************************************************************************************
*/

void Task0(void *Id)
{	
	
	Uart_Printf(0,"Task0() called\r\n");
    Rtc_Tick_Init();
 	for(;;)
 	{
 	   
		Uart_Printf(0,"HELLO THE WORLD!!\n");
		OSTimeDlyHMSM(0,0,3,0);
		
	}
}

/*
*************************************************************************************************************
*
*
*
*
*
*
*
*************************************************************************************************************
*/

void Task1(void *Id)
{
	//char Id0 = '0';             //创建任务所必须
   // INT8U i = 0;
    //INT8U  err;
	Uart_Printf(0,"Task1() called\r\n");

	for(;;)
	{
	   	GUI_TOUCH_tState State;
	   	
//	   	OSSemPend(TouchSem1, 0, &err);
	   	
  		GUI_SetBkColor(GUI_GRAY0);
 		GUI_Clear();
  		GUI_SetColor(GUI_GRAY15);
  		GUI_FillRect(50, 50, 90, 90);
  		GUI_SetColor(GUI_GRAY15);
 		GUI_DispString("Please touch the green rectangle to continue...\n");
  		GUI_SetPenSize(10);
 		 while(1) 
  		{
    		// Get state of touch screen 
   		 	GUI_TOUCH_GetState(&State);
   		 	
    		if (State.Pressed) 
    		{
      			if ((State.x >= 50) && (State.y >= 50) && (State.x <= 90) && (State.y <= 90)) 
      			{
        		// Break if position inside 
       			 	break;
      			} 
      			else 
      			{
        		// Display position 
        			GUI_SetColor(GUI_GRAY15);
        			GUI_DispStringAt("Position ", 0, GUI_GetDispPosY());
        			GUI_DispDec(State.x, 3);
        			GUI_DispString("/");
        			GUI_DispDec(State.y, 3);
        			GUI_DispString(" is not inside the rectangle");
        			GUI_SetColor(GUI_GRAY15);
        			GUI_DrawPoint(State.x, State.y);
      			}
    		}
    		//GUI_Delay(50);
  		}
  		GUI_SetColor(GUI_GRAY15);
  		GUI_DispString("\nOK");
  		OSTimeDlyHMSM(0,0,0,100);
	}
}
/*
*************************************************************************************************************
*
*
*
*
*
*
*
*************************************************************************************************************
*/

int Main(void)                            
{
	char Id0 = '0';
	//char Id1 = '1';
	//char Id2 = '2'; 
	char Id3 = '3';  
	
	
	Target_Init();
	GUI_Init();
	Uart_Printf(0,"\nuCOS-II Operation System Start!\n");
	OSInit();
    Uart_Printf(0,"\nuCOS-II Operation System Start!\n");
	Touch_Init();
	//Touchen();
	
	LCD_on_init; 	
	//TouchSem1 = OSSemCreate(0);	
	//Mbox1 = OSMboxCreate(PassMsg);
	//Mbox2 = OSMboxCreate((void *)0);
	//Mbox3 = OSMboxCreate((void *)0);
	
	//OSTaskCreate(Task1, (void *)&Id1, (OS_STK *)&Stack1[STACKSIZE - 1], 61);
	//OSTaskCreate(Task2, (void *)&Id2, (OS_STK *)&Stack2[STACKSIZE - 1], 7);
	OSTaskCreate(Task3, (void *)&Id3, (OS_STK *)&Stack3[STACKSIZE - 1], 52);
	OSTaskCreate(Task0, (void *)&Id0, (OS_STK *)&Stack0[STACKSIZE - 1], 5);
		
	OSStart();
	return 0;
}	// main


/*
void Main(void)
{
    int i;

    rSYSCFG = SYSCFG_8KB;
    Target_Init();
     LCD_off_init;
     Delay1(5000);
 
	El_off;
	LCD_on_init;
    Touch_Init();
    //Touchen();

     while(1)
    {
	    //i=0;
        //Uart_Printf(0,"\n\n\nSW3C44B0 测试程序V1.0 ( LCD for lm64p70 )\n\n");
	    //for(i=0;i<100;i++)
	  		Delay(500000);
    }    
}*/

⌨️ 快捷键说明

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