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

📄 main.c

📁 嵌入式实时操作系统uc/OS-II于s3c2410的开发测试程序3源代码
💻 C
字号:
#include	"..\INC\includes.h"

#define	STACKSIZE	0x8ff
U16 valu;
OS_EVENT *TextBox;
OS_EVENT *ReciveBox;
extern void Show_corporationname(U8 LcdBuffer);
char Id1 = '1';
char Id2 = '2';
unsigned int Stack1[STACKSIZE]={0};
unsigned int Stack2[STACKSIZE]={0};

char * Change_String(char *fmt,...)
{
	int i = 0;
    va_list ap;
    char string[256];

    va_start(ap,fmt);
    vsprintf(string,fmt,ap);
    
    va_end(ap);
    return string;
}        
/*******************************MAIN**********************************************/
void Main(void)
{	
 	ChangeClockDivider(1,1);          	// 1:2:4        
   	ChangeMPllValue(0xa1,0x3,0x1);    	// FCLK=202.8MHz  
   	Port_Init();					  	// 系统初始化 
   	Uart_Init(0,115200);              	//Uart_Init(FCLK/4,115200);    
    Uart_Select(0);             	
  	Delay(0);               	      	//calibrate Delay()

	OSInit();							//使用ucos提供的任何功能之前必须调用OSInit()函数
	OSTimeSet(0);							// 设置当前系统时钟数值
    TextBox = OSMboxCreate((void *)0);      // 创建消息邮箱
    ReciveBox = OSMboxCreate((void *)0);    // 创建消息邮箱       
   
 		Uart_Printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
		Uart_Printf("          **********************************************************\n\n");
        Uart_Printf("          ****************浙江天煌科技实业有限公司******************\n\n");
        Uart_Printf("          *************THUDC-1型嵌入式ARM实验/开发系统**************\n\n");
        Uart_Printf("          *************基于UC/OS-II的消息邮箱应用实验**************\n\n");
        Uart_Printf("          **********************************************************\n\n\n");
     	Uart_Printf("          请按设备键盘向邮箱发送消息...\n\n");
     	GUI_Init();
     	LCD_Init_Controler();//Lcd_Init(MODE_CSTN_8BIT);
     	Lcd_CstnOnOff(1);
     	
    	GUI_SetBkColor(GUI_CYAN);
    	GUI_SetColor(GUI_BLACK);
   		GUI_SetFont(&GUI_Font_HZK16);
   		GUI_Clear();

        GUI_DispStringAt("浙江天煌科技实业有限公司",60,30);
        GUI_SetColor(GUI_BLUE);
        GUI_DispStringAt("THUDC-1型嵌入式ARM实验/开发系统",35,55);
	    GUI_DispStringAt("基于UC/OS-II的消息邮箱应用实验",40,80);
	    GUI_SetColor(GUI_RED);	    
	    GUI_DispStringAt("--S3C2410--",110,105);
	    GUI_SetColor(GUI_MAGENTA);
	    GUI_DispStringAt("请按设备键盘向邮箱发送消息...",50,150);
	
		Delay(DELAY_TIME);
		OSTaskCreate(mainTask, (void *)&Id1, (void *)&Stack1[STACKSIZE - 1], 1);//建立任务		 
		OSTaskCreate(HostTask, (void *)&Id2, (void *)&Stack2[STACKSIZE - 1], 2);//建立任务
			
	OSStart();							//将控制权交给ucos内核,开始运行多任务
}  

/*******************************TASK1**********************************************/
void mainTask(void *i)
{
    char *textmsg;  
    U8 error;
    
   
    while(1)
        {
        GUI_SetColor(GUI_MAGENTA);
   		GUI_SetFont(&GUI_Font_HZK16);
   		
        valu = Test_keyboard();
		if(valu>=0 && valu<16)
			{          
				textmsg = Change_String("%0x\t",valu); 
				OSMboxPost(TextBox,(void *)textmsg);    // 向消息邮箱发送一个字符 
				OSMboxPend(ReciveBox,0,&error);         // 等待应答  
       		}  
    	}
}

/*******************************TASK2**********************************************/
void HostTask(void *i)
{
	U8   error;
	char *recivemsg;
while(1)
		{	    
        recivemsg = (char *)OSMboxPend(TextBox, 0, &error);  //等待TextBox邮箱的消息                       
          	   	 	
		GUI_Clear();
	    GUI_DispStringAt("邮箱收到消息为:",60,100);
	
	    GUI_SetColor(GUI_RED);
	    GUI_SetFont(&GUI_Font32_ASCII);
	    GUI_DispStringAt(recivemsg,190,90);

	    Uart_Printf("          邮箱收到消息为: ");
	    Uart_Printf(recivemsg);
	    Uart_Printf("\r");

	    OSMboxPost(ReciveBox, (void *)1);                   // 给出应答
		}
}                        

⌨️ 快捷键说明

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