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

📄 44bmon.c.bak

📁 CH375移植到S3C44B0
💻 BAK
📖 第 1 页 / 共 2 页
字号:
	      if(MsgCnt<=15) 
	      {   for(i=0;i<MsgCnt;i++)      
	          {   	
	              LCD_PrinSet(0,i*14);
	              LCD_Printf("消息%d:%s\n",(U16)(i+1),MsgBuf[i]);
	          }    
	      }
	      else
	      {   LCD_WritePixel(0,0,320-1,240-16,acFROG);	//在LCD上面显画面 刷新
	      	  Cnt=MsgCnt-15;
	      	  for(i=0;i<15;i++)      
	          {   	
	              LCD_PrinSet(0,i*14);
	              LCD_Printf("消息%d:%s\n",(U16)(i+Cnt+1),MsgBuf[i+Cnt]);
	          }    
	      }
	         

	//	OSMboxPost(tisem,(void*)&msg);
      //  OSMboxPend(ok,0,&err);
     //   msg++;
    //    if(msg>'Z')
	//		msg='A'; 
    }           
}

//////////////////////////////////////////////////////
void Task3(void *i)
{   
    INT8U Reply, n=5;
   // char *msg;
    LCD_WritePixel(0,0,320-1,240-16,acFROG);	//在LCD上面显画面 刷新
    for(;;){
        LED1(1);
        LED2(1);
        LED0(0);
	//	msg=(char*)OSMboxPend(tisem,0,&err);
		Uart_Printf("555,别要忘记我哦,朋友,我是你忠实的朋友!!\n");  	
        OS_ENTER_CRITICAL();
        FontOver(1); //字体叠加
        LCD_PenColor = 0x1f;	//红色
        LCD_PrinSet(10,5); 
        LCD_Printf("该部分用于设置系统时间日期等参数\n");
        OS_EXIT_CRITICAL();
        RtcGetTime(SysTime); 
        OS_ENTER_CRITICAL();
        FontOver(0);//使用背景颜色
        LCD_PenColor =0;	//黑色  
        LCD_BGColor =255;		//白色 
        LCD_PrinSet(0,210);
        LCD_Printf("%04d年%2d月%2d日%02d时%02d分%02d秒",SysTime->year,SysTime->month,SysTime->day,SysTime->hour,SysTime->min,SysTime->sec);
//	OS_EXIT_CRITICAL();
	OSTimeDly(100);
     //   OSMboxPost(ok,(void*)1);      
    }    

}
//////////////////////////////////////////////////////////////////////////////
void Task4(void *datatt)
{
	U8 err,Cnt=0,i;
	while(1)
	{
		OSSemPend(KeyScrlFlh, 0, &err);//等待有可以显示的信息
                if(MsgCnt>=15)
                {
                	LCD_WritePixel(0,0,320-1,240-16,acFROG);	//在LCD上面显画面 刷新
		      	for(i=0;i<15;i++)      
		        {   	
		              LCD_PrinSet(0,i*14);
		              LCD_Printf("消息%d:%s\n",(U16)(i+1),MsgBuf[i]);
		        }
		}    
	}
}
/////////////////////////////////////////////////////////////////////////////////
 extern void InitInterrupts(void);
 extern void InstallSystemTimer(void);
void TaskStart(void *m)
{       U8 i;   
	U8 RunTask1=0,RunTask2=0,RunTask3=0;      
        LCD_BGColor =0xfc;		//蓝色
        LCD_PenColor = 0x00;	//黑色
        Lcd256_Clear(LCD_BGColor);
        LCD_WritePixel(0,0,320-1,240-16,acFROG);	//在LCD上面显画面
        LCD_PrinSet(0,0);
        FontOver(0);
        LCD_Printf("%d是什么?\n",13);
              
        InstallSystemTimer();   //安装并开启UCOS的时钟节拍
        OSStatInit();//初始化系统统计任务
        
        CH375Reset();	
	mDelaymS(100 );  /* 延时50ms */	
	i = CH375LibInit( );  /* 初始化CH375程序库和CH375芯片,操作成功返回0 */
	mStopIfError( i );
        CH375_PORT_INIT( );////////////////////////////////////////USB硬件接好以后加入该句///////////
	//创建任务
	//OSTaskCreate(Task1, (void *)0, (void *)&Stack1[STACKSIZE - 1], 2);
        //OSTaskCreate(Task2, (void *)0, (void *)&Stack2[STACKSIZE - 1], 3);
        //OSTaskCreate(Task3, (void *)0, (void *)&Stack3[STACKSIZE - 1], 4); 
        
        OSTaskCreate(Task4, (void *)0, (void *)&Stack4[STACKSIZE - 1], 5);
        LCDFlsh=OSSemCreate(0);//创建信号量为零的信号 
        KeyScrlFlh=OSSemCreate(0);
        LCD_BGColor =0x1f;
	LCD_TextOut("消息",8,226);	
	LCD_TextOut("设置",40,226);
	LCD_TextOut("资料",72,226);
	LCD_BGColor =0xfc;		//蓝色
	rINTMSK&=(~(BIT_URXD0));
        pISR_URXD0=(unsigned)Uart0Int;
	while(1)
	{
		RtcGetTime(SysTime);
		LCD_PrinSet(202,226);LCD_BGColor =120;//绿色
		LCD_Printf("CPU使用%2d%%",(U16)OSCPUUsage);
		LCD_PrinSet(277,226);LCD_BGColor =0xfc;		//蓝色
		LCD_Printf("%02d:%02d",SysTime->hour,SysTime->min);	

		OSTimeDly(200);
		FontOver(0);
		if(Key1)
		{	
			while(Key1)
			{	LCD_BGColor =63;//黄
				LCD_TextOut("消息",8,226);
				OSTimeDly(40);	
			}
			RunTask2=~RunTask2;
			if(RunTask2)
			{	LCD_BGColor =120;//绿色
				OSTaskCreate(Task2, (void *)0, (void *)&Stack2[STACKSIZE - 1], 3);
				OSSemPost(LCDFlsh);//发送一个信号,显示任务接受信号后立刻显示 
			}
			else
			{	LCD_BGColor =0x1f;//红
				OSTaskDel(3);
			}				
			LCD_TextOut("消息",8,226);
		}
		if(Key2)
		{	
			while(Key2) 
			{	LCD_BGColor =63;
				LCD_TextOut("设置",40,226);
				OSTimeDly(40);
			}
			RunTask3=~RunTask3;
			if(RunTask3)
			{	
				LCD_BGColor =120;//绿色
				OSTaskCreate(Task3, (void *)0, (void *)&Stack3[STACKSIZE - 1], 4);
			} 
			else
			{	LCD_BGColor =0x1f;//红
				OSTaskDel(4);
			}
			LCD_TextOut("设置",40,226);
			
		}
		if(Key3)
		{	
			while(Key3) 
			{	LCD_BGColor =63;
				LCD_TextOut("资料",72,226);
				OSTimeDly(40);
			}
			RunTask1=~RunTask1;
			if(RunTask1)
			{	LCD_BGColor =120;//绿色
				OSTaskCreate(Task1, (void *)0, (void *)&Stack1[STACKSIZE - 1], 2); 
			}
			else
			{	LCD_BGColor =0x1f;//红
				OSTaskDel(2);
			}
			LCD_TextOut("资料",72,226);
		}
		if(Key4)
		{	
			while(Key4) OSTimeDly(40);
			OSSemPost(KeyScrlFlh);
		}
	}
}

/*
 * Main function.
 */
//////////////////////////////////////////////////////////////////////////////////////////
void Main(void)
{
    rSYSCFG = CACHECFG;
        //8K字节cache,写缓冲使能,data abort使能
    rNCACHBE0 = ((Non_Cache_End>>12)<<16)|(Non_Cache_Start>>12);
    InitInterrupts();
       //在上面的数据区域不使用高速缓存
     //LcdColor256_Bmp(acFROG);
    //LCD_WritePixel(0,0,320-1,240-1,acFROG);		//在LCD上面显画面
    Port_Init();//初始化各端口
	//ChangePllValue( 56, 2, 1 );		//晶振8MHz,修改系统主频为8倍频(64MHz)
	//ChangePllValue( 56, 3, 1 );		//晶振10MHz,修改系统主频为6.4倍频(64MHz)
    ChangePllValue( 24, 3, 1 );		//晶振10MHz,修改系统主频为3.2倍频(32MHz)
    Uart_Init(0,9600);     //初始化窜口
    Delay(500);
    Uart_Select(0);         //Select UART0
    Lcd_DispON();		//开启LCD显示,包含初时化LCD
    RtcInit(SysTime);       //初始化系统时间
    
    OSInit();
    OSTaskCreate(TaskStart, (void *)0, (void *)&Stack0[STACKSIZE - 1], 0);
    /* start the game */
    OSStart();
}

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

⌨️ 快捷键说明

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