main.c

来自「UCOS-2.rar」· C语言 代码 · 共 280 行

C
280
字号
/****************************************Copyright (c)**************************************************
**                               Guangzou ZLG-MCU Development Co.,LTD.
**                                      graduate school
**                                 http://www.zlgmcu.com
**
**--------------File Info-------------------------------------------------------------------------------
** File name:			main.c
** Last modified Date:  2004-09-16
** Last Version:		1.0
** Descriptions:		The main() function example template
**
**------------------------------------------------------------------------------------------------------
** Created by:			Chenmingji
** Created date:		2004-09-16
** Version:				1.0
** Descriptions:		The original version
**
**------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
** Version:
** Descriptions:
**
********************************************************************************************************/
#include "config.h"
#include "stdlib.h"

#define	TaskStkLengh	200		//Define the Task0 stack length 定义用户任务0的堆栈长度
uint8 const  Matrix000[]=
{
/*------------------------------------------------------------------------------
;  源文件 / 文字: 字模软件 V0.1

;  宽×高(像素) : 18×104
------------------------------------------------------------------------------*/
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x00,0x00,0x02,0x00,0x21,0x20,0x10,0x40,
  0x08,0x40,0x00,0x00,0x00,0x00,0x00,0x01,
  0x00,0x21,0x28,0x10,0x40,0x08,0x40,0x00,
  0x00,0x00,0x00,0x00,0x3F,0xF8,0x27,0xFC,
  0xFE,0x80,0x12,0x40,0x04,0x02,0x3C,0x00,
  0x10,0x20,0x08,0xF9,0x20,0x20,0xFC,0x12,
  0x40,0x04,0x02,0x42,0x00,0x10,0x5F,0xF0,
  0x23,0xF8,0x29,0x04,0x23,0xF8,0x02,0x04,
  0x81,0x00,0x70,0x00,0x40,0x32,0x08,0x48,
  0x48,0x64,0x40,0x02,0x04,0x81,0x00,0x10,
  0x01,0x80,0x6B,0xF8,0x7E,0x40,0xA8,0x40,
  0x02,0x04,0x81,0x00,0x10,0x01,0x08,0x6A,
  0x08,0x08,0x40,0x20,0x40,0x01,0x08,0x81,
  0x00,0x10,0xFF,0xFC,0xA3,0xF8,0x08,0x40,
  0x2F,0xFC,0x01,0x08,0x81,0x00,0x10,0x01,
  0x00,0xA0,0x80,0x0E,0xA0,0x20,0x40,0x00,
  0x90,0x81,0x00,0x10,0x01,0x00,0x2F,0xFC,
  0xF8,0xA0,0x20,0x40,0x00,0x90,0x81,0x00,
  0x10,0x01,0x00,0x21,0x20,0x09,0x10,0x20,
  0x40,0x00,0x90,0x42,0x10,0x10,0x05,0x00,
  0x22,0x10,0x0A,0x0C,0x20,0x40,0x00,0x60,
  0x3C,0x10,0x7C,0x02,0x00,0x2C,0x0C,0x0C,
  0x08,0x20,0x40,0x00,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x00,0x00
};

uint8 const  Matrix001[]=
{
/*------------------------------------------------------------------------------
;  源文件 / 文字: 大小人口手

;  宽×高(像素) : 13×60
------------------------------------------------------------------------------*/
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x04,0x00,0x40,0x04,0x00,0x00,0x03,0xC0,
  0x04,0x00,0x40,0x04,0x07,0xFC,0xFC,0x00,
  0x04,0x40,0x40,0x04,0x04,0x04,0x04,0x00,
  0xFF,0xE1,0x50,0x04,0x04,0x04,0x7F,0xC0,
  0x04,0x01,0x48,0x04,0x04,0x04,0x04,0x00,
  0x04,0x02,0x44,0x0A,0x04,0x04,0x04,0x00,
  0x0A,0x04,0x42,0x0A,0x04,0x04,0xFF,0xE0,
  0x0A,0x08,0x42,0x11,0x04,0x04,0x04,0x00,
  0x11,0x00,0x40,0x11,0x07,0xFC,0x04,0x00,
  0x20,0x80,0x40,0x20,0x84,0x04,0x04,0x00,
  0xC0,0x61,0xC0,0xC0,0x60,0x00,0x1C,0x00,
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 
};

uint8 const   Matrix002[]=
{
/*------------------------------------------------------------------------------
;  源文件 / 文字: 信封ico图片

;  宽×高(像素) : 32×32
------------------------------------------------------------------------------*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xFF,0xFF,0xFC,0x20,0x00,0x00,0x2C,
0x30,0x00,0x00,0x9C,0x38,0x00,0x00,0x3C,0x2C,0x00,0x00,0xEC,0x26,0x00,0x02,0xEC,
0x23,0x00,0x09,0x8C,0x21,0x80,0x03,0x2C,0x20,0xC0,0x0E,0x8C,0x20,0x60,0x2E,0x2C,
0x20,0xFA,0x9C,0x8C,0x22,0x98,0x3A,0x2C,0x21,0x8F,0xF9,0x8C,0x22,0x27,0xE2,0xAC,
0x2C,0x08,0x88,0xCC,0x2A,0x22,0x22,0x2C,0x30,0x88,0x88,0x9C,0x20,0x22,0x22,0x2C,
0x28,0x88,0x88,0x8C,0x3F,0xFF,0xFF,0xFC,0x3F,0xFF,0xFF,0xFC,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00

};



OS_STK	TaskStk[TaskStkLengh];		//Define the Task0 stack 定义用户任务0的堆栈
void 	Task0(void *pdata);			//Task0 任务0
//uint8  GUI_PutChar24_32(uint32 x, uint32 y, uint8 ch);
/****************************************************************************
* 名称: main()
* 功能: 初始化uC/OS-II操作系统,建立第一个任务,然后启动系统。
****************************************************************************/
int main(void)
{
	OSInit ();																										
	OSTaskCreate (Task0,(void *)0, &TaskStk[TaskStkLengh - 1], 2);		
	OSStart ();
	return 0;															
}
/**************************移动小球的函数***********************************/
void  MoveBall(void)
{  
   uint8  a0,b0;
   uint8  a0q,b0q;
   uint8  a0h,b0h;
   /*WINDOWS   d;
   d.x=0;
   d.y=0;
   d.with=128;
   d.hight=64;
   d.title=(uint8*)"one world one drem";
   d.state=(uint8*)"  one world one drem";
   GUI_WindowsDraw(&d);*/
   
   
   a0=a0q=23;
   b0=b0q=23;
   a0h=b0h=1;
   while(1)
   {
      GUI_Circle(a0,b0,5,1);
      GUI_Circle(a0q,b0q,5,0);
      a0q=a0;
      b0q=b0;
      OSTimeDly(10);
      if(a0h==1)
         a0=a0+2; 
      
   
      if(b0h==1)
         b0=b0+2; 
 
      if(a0h==0)
         a0=a0-2; 
          
      if(b0h==0)
         b0=b0-2; 

      if(a0<=7)
      { 
         a0h=1;
      }
      if(a0>=121)
      { 
         a0h=0;
      }
      if(b0>=56)
      { 
         b0h=0;
      }
      if(b0<=7)
      { 
         b0h=1;
      }
}
/************************************显示菜单**************************/    
}
void  DemoEllipse()
{
    WINDOWS   demow;
    demow.x=0;
    demow.y=0;
    demow.with=128;
    demow.hight=64;
    demow.title=(uint8*)"one world one drem";
    demow.state=(uint8*)"  one world one drem";
    GUI_WindowsDraw(&demow);
}
/*******************************显示进度条和Loading...*****************/
void  Dispxinfeng(void)

{
    uint8   i;
    GUI_PutString(30,25,"Loading......");
    GUI_Rectangle(10,35,110,45,1);
    for(i=0;i<100;i++)
    {
        
        GUI_RectangleFill(10,35,10+i,45,1);
        if((i%10)==5)
        {
           GUI_PutString(30,25,"Loading......");
        }
        
         if((i%10)==0)
        {
           GUI_PutString(30,25,"             ");
        }
        OSTimeDly(8); 
    }
}
/*******************************信封屏幕保护****************************/
void  PB(void) 
{
   uint8   xx,yy;
   
   while(1)
   {
       xx=rand()&0x7f;
       yy=rand()&0x3f;
       if(xx>(GUI_LCM_XMAX-35))
       {  
         xx=xx>>1;
       }
       if(yy>(GUI_LCM_YMAX-10))
       {  
         yy=yy>>1;
       }
       GUI_LoadPic(xx,yy,(uint8 *)Matrix002,32,32);
       OSTimeDly(100); 
       GUI_RectangleFill(xx,yy,xx+32,yy+32,0);
   }
}
/*********************************************************************************************************
**                            Task0 任务0
** 功能:使用ZLG/GUI,在屏幕上同时显示多个"Hello ZLG/GUI!"字符串
********************************************************************************************************/
void Task0(void *pdata)
{  

	pdata = pdata;
	TargetInit ();
	//srand(96169);
	GUI_Initialize();       // 初始化LCM
    GUI_SetColor(1, 0);     // 设置前景色和背景色
    Dispxinfeng();        // 显示进度条loading...
    //DemoEllipse();        // 显示菜单
	while (1)
	{      
	     //GUI_Rectangle(10,35,20,100,1);                     //画矩形
	     //OSTimeDly(10);   
	     //GUI_LoadPic(0,0,(uint8 *)Matrix000,104,18);        //显示汉字
	     //GUI_LoadPic1(0,16,(uint8 *)Matrix001,60,13);       //显示汉字
	     //GUI_LoadPic(0,29,(uint8 *)Matrix002,32,32);        //显示信封图片
         //GUI_PutString(0,0, "Hello ZLG/GUI!");              //指定位置显示字符串
         //GUI_PutString8_8(0,8, "Hello ZLG/GUI!");           //指定位置显示字符串
         //GUI_PutChar24_32(0,16,'1');                        //显示24x32的字符
         //GUI_HLine(25,18,56,1);                             //画直线 
         //GUI_RLine(25,18,40,1);                             //画垂直线
         //GUI_Line(25,40,56,18,1);                           //画任意两点的直线
         //GUI_LineWith(25,50,56,28,6,1);                     //画任意两点的加宽直线
         //GUI_Button_OK(56,16);                              //显示ok直线
         //GUI_Button_OK1(56,48);                             //显示选中的ok直线
		 //OSTimeDlyHMSM(0, 0, 10, 0);                        //延时
		   GUI_ClearSCR();                                    //清屏                
		   PB();                                              //信封屏幕保护显示
		 //MoveBall();                                          //移动的小球
		 GUI_MenuIcoDraw
	}
}
   
/*********************************************************************************************************
**                            End Of File
********************************************************************************************************/

⌨️ 快捷键说明

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