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

📄 main1.c

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

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

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

#include <stdio.h>

//#define LCD rPDATE=rPDATE|(1<<3);



#define TASKSTART_STKSIZE	256
#define TASKKEY_STKSIZE		256
#define TASKUART0_STKSIZE	256
#define TASKGUI_STKSIZE		512
#define TASKCHECK_STKSIZE	256


OS_STK TaskStart_Stk[TASKSTART_STKSIZE];
OS_STK TaskKey_Stk[TASKKEY_STKSIZE];
OS_STK TaskUart0_Stk[TASKUART0_STKSIZE];
OS_STK TaskGui_Stk[TASKGUI_STKSIZE];
OS_STK TaskCheck_Stk[TASKCHECK_STKSIZE];



OS_EVENT *Q_Gui;
#define MSGARRAY_GUI_SIZE	64
void *MsgArray_Gui[MSGARRAY_GUI_SIZE];

OS_STK_DATA  stk;


void TaskStart(void *Id);
void TaskKey(void *Id);
void TaskUart0(void *Id);
void TaskGui(void *Id);
void TaskCheck(void *Id);



int Main(void)
{
	Target_Init();
	OSInit();
	OSTaskCreateExt(TaskStart, (void *)0, &TaskStart_Stk[TASKSTART_STKSIZE - 1], 2,
				    2, &TaskStart_Stk[0], TASKSTART_STKSIZE, (void *)0, 
				    OS_TASK_OPT_STK_CHK|OS_TASK_OPT_STK_CLR);
	OSStart();
	
	return(1);
}


void TaskStart(void *Id)
{
	Rtc_Tick_Init();
	OSStatInit();
	
	Q_Gui = OSQCreate(MsgArray_Gui, MSGARRAY_GUI_SIZE);
	
	OSTaskCreateExt(TaskKey, (void *)0, &TaskKey_Stk[TASKKEY_STKSIZE - 1], 10,
				    10, &TaskKey_Stk[0], TASKKEY_STKSIZE, (void *)0,
				    OS_TASK_OPT_STK_CHK|OS_TASK_OPT_STK_CLR);
	OSTaskCreateExt(TaskUart0, (void *)0, &TaskUart0_Stk[TASKUART0_STKSIZE - 1], 11,
					11, &TaskUart0_Stk[0], TASKUART0_STKSIZE, (void *)0,
					OS_TASK_OPT_STK_CHK|OS_TASK_OPT_STK_CLR);
	OSTaskCreateExt(TaskGui, (void *)0, &TaskGui_Stk[TASKGUI_STKSIZE - 1], 48,
					48, &TaskGui_Stk[0], TASKGUI_STKSIZE, (void *)0, 
					OS_TASK_OPT_STK_CHK|OS_TASK_OPT_STK_CLR);
	OSTaskCreateExt(TaskCheck, (void *)0, &TaskCheck_Stk[TASKCHECK_STKSIZE - 1], 56,
					56, &TaskCheck_Stk[0], TASKCHECK_STKSIZE, (void *)0, 
					OS_TASK_OPT_STK_CHK|OS_TASK_OPT_STK_CLR);				
	
	while(1) {
		OSTimeDlyHMSM(0,0,1,0);
	}
	
	//OSTaskDel(OS_PRIO_SELF);
}


void TaskKey(void *Id)
{
	INT16U  msggui=1;

	while(1) {
		OSQPost(Q_Gui, &msggui);
		OSTimeDlyHMSM(0,0,0,52);
			
		msggui++;
		if(msggui>5)
			msggui=1;
	}
}


void TaskUart0(void *Id)
{
	INT16U  msggui;
	
	while(1) {
		if(rUTRSTAT0 & 0x1) {  //Receive data read
			msggui=RdURXH0();
			WrUTXH0(msggui);
			
			OSQPost(Q_Gui, &msggui);
		}
		OSTimeDly(1);
	}
}


void TaskGui(void *Id)
{
	INT16U  *msggui;
	INT8U  err;
	char   str[64];
	INT16U  cnt1=0,cnt2=0,cnt3=0,cnt4=0,cnt5=0;

	GUI_Init();
	GUI_Clear();
	GUI_SetFont(&GUI_Font8x16x2x2);
	GUI_DispStringAt("UniStrong.com",0,0);
	GUI_SetFont(&CHINESE_FONT16);
	GUI_DispStringAt(CN_start"北京合众思壮科技有限责任公司"CN_end,0,32);
	GUI_SetFont(&GUI_Font8x16);
	GUI_DispStringAt("www.UniStrong.com",0,48);
	GUI_SetFont(&CHINESE_FONT12);
	GUI_DispStringAt(CN_start"北京合众思壮科技有限责任公司"CN_end,0,64);
	GUI_SetFont(&GUI_Font8x16);
	
	while(1) {
		msggui = (INT16U *)OSQPend(Q_Gui, 0, &err);
		
		if((*msggui)==1) {
			sprintf(str,"%05u", cnt1);
			cnt1++;
			GUI_DispStringAt(str, 0,100);
		}
		else if((*msggui)==2) {
			sprintf(str,"%05u", cnt2);
			cnt2++;
			GUI_DispStringAt(str, 48,100);			
		}
		else if((*msggui)==3) {
			sprintf(str,"%05u", cnt3);
			cnt3++;
			GUI_DispStringAt(str, 96,100);
		}
		else if((*msggui)==4) {
			sprintf(str,"%05u", cnt4);
			cnt4++;
			GUI_DispStringAt(str, 144,100);
			
		}
		else if((*msggui)==48) {
			sprintf(str,"%05u", cnt5);
			cnt5=cnt5+2;
			GUI_DispStringAt(str, 192,100);
		}
		
		else if((*msggui)==1002) {
			sprintf(str, "ST2:    %4d %4d %4d", stk.OSFree/4+stk.OSUsed/4, stk.OSFree/4, stk.OSUsed/4);
			GUI_DispStringAt(str, 0,128);
		}
		else if((*msggui)==1010) {
			sprintf(str, "Key10:  %4d %4d %4d", stk.OSFree/4+stk.OSUsed/4, stk.OSFree/4, stk.OSUsed/4);
			GUI_DispStringAt(str, 0,144);
		}
		else if((*msggui)==1011) {
			sprintf(str, "Uart11: %4d %4d %4d", stk.OSFree/4+stk.OSUsed/4, stk.OSFree/4, stk.OSUsed/4);
			GUI_DispStringAt(str, 0,160);
		}
		else if((*msggui)==1048) {
			sprintf(str, "Gui48:  %4d %4d %4d", stk.OSFree/4+stk.OSUsed/4, stk.OSFree/4, stk.OSUsed/4);
			GUI_DispStringAt(str, 0,176);
		}
		else if((*msggui)==1056) {
			sprintf(str, "Chk56:  %4d %4d %4d", stk.OSFree/4+stk.OSUsed/4, stk.OSFree/4, stk.OSUsed/4);
			GUI_DispStringAt(str, 0,192);
		}
		
		else if((*msggui)==2000) {
			sprintf(str, "CPU:    %2d", OSCPUUsage);
			GUI_DispStringAt(str, 0,224);
		}
	}
}


void TaskCheck(void *Id)
{
	INT16U  msggui;
	
	while(1) {
		OSTaskStkChk(2, &stk);
		msggui=1002;
		OSQPost(Q_Gui, &msggui);
		OSTimeDly(2);
		
		OSTaskStkChk(10, &stk);
		msggui=1010;
		OSQPost(Q_Gui, &msggui);
		OSTimeDly(2);
		
		OSTaskStkChk(11, &stk);
		msggui=1011;
		OSQPost(Q_Gui, &msggui);
		OSTimeDly(2);
		
		OSTaskStkChk(48, &stk);
		msggui=1048;
		OSQPost(Q_Gui, &msggui);
		OSTimeDly(2);
		
		OSTaskStkChk(56, &stk);
		msggui=1056;
		OSQPost(Q_Gui, &msggui);
		OSTimeDly(2);
		
		msggui=2000;
		OSQPost(Q_Gui, &msggui);
		OSTimeDly(2);
		
		OSTimeDlyHMSM(0,0,0,500);
	}
}

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

extern OS_EVENT * RXDSem;

#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, };


//OS_EVENT *Mbox1;
//OS_EVENT *Mbox2;
//OS_EVENT *Mbox3;

char PassMsg[] = "SW44B0";


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

void Task1(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");
		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);
		
	}
}

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

⌨️ 快捷键说明

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