?? main.c
字號:
/****************************************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 64 //Define the Task0 stack length 定義用戶任務0的堆棧長度
OS_STK TaskStk[TaskStkLengh]; //Define the Task0 stack 定義用戶任務0的堆棧
void Task0(void *pdata); //Task0 任務0
/****************************************************************************
* 名稱: main()
* 功能: 初始化uC/OS-II操作系統,建立第一個任務,然后啟動系統。
****************************************************************************/
int main(void)
{
OSInit ();
OSTaskCreate (Task0,(void *)0, &TaskStk[TaskStkLengh - 1], 2);
OSStart ();
return 0;
}
// zlg_gui.bmp (82x29點)
// 調整后為88x29點。
uint8 const LOGO_DAT[]=
{
0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x06,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x1F,0x80,0x0C,0x7F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x31,
0x80,0x0C,0xF3,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0xC0,0x18,0xE1,0x8E,0x00,
0x00,0x00,0x00,0x03,0x00,0x60,0x40,0x19,0xC1,0x87,0x80,0x00,0x00,0x00,0x0F,0x00,
0x60,0x00,0x31,0xC1,0x87,0x0C,0x00,0x00,0x00,0x1E,0x00,0xE0,0x00,0x33,0x81,0x0E,
0x1F,0x00,0x00,0x00,0x1E,0x00,0xE0,0x00,0x63,0x80,0x0E,0x0E,0x00,0x00,0x00,0x0F,
0x00,0xE0,0x00,0x63,0x80,0x1E,0x0C,0x00,0x00,0x04,0x07,0x00,0xE0,0x70,0xC3,0x80,
0x1C,0x18,0x00,0x00,0x0C,0x07,0x80,0xE1,0xE0,0xC3,0x0E,0x1C,0x18,0x08,0x00,0x0E,
0x03,0x80,0x60,0x61,0x83,0x07,0xD8,0x10,0x0C,0x00,0x1E,0x03,0x80,0x70,0x61,0x83,
0x87,0x38,0x30,0x06,0x00,0x33,0x03,0xC0,0x30,0x63,0x01,0x87,0x78,0x30,0x06,0x00,
0x63,0x01,0xC0,0xF8,0x73,0x01,0x86,0x70,0x20,0x0F,0x00,0x63,0x81,0xC0,0xDC,0x76,
0x01,0xC6,0x70,0x20,0x1C,0x80,0xE1,0x80,0xE0,0xCF,0xC6,0x00,0xFE,0x60,0x40,0x38,
0x40,0x61,0x83,0xE1,0xC3,0x00,0x00,0x38,0x70,0x40,0xF0,0x00,0x20,0xC1,0xF7,0xC0,
0x00,0x00,0x00,0x30,0xC1,0xE0,0x00,0x00,0xC1,0xFF,0x00,0x00,0x00,0x00,0x1F,0x83,
0x80,0x00,0x00,0xE1,0xF8,0x00,0x00,0x00,0x00,0x04,0xC7,0x00,0x00,0x00,0x61,0xC0,
0x00,0x00,0x00,0x00,0x00,0x6E,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x00,0x00,0x00,
0x3C,0x00,0x00,0x00,0x72,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x3E,
0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x00,0x00,
0x00,0x08,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00
};
#define PROG_STARTX 10
#define PROG_STARTY 35
#define PROG_HIGH 10
#define PROG_LENGTH 100
/****************************************************************************
* 名稱: DispLogin()
* 功能: 閃動顯示"Loading...",并顯示進度條。
* 入口參數: 無
* 出口參數: 無
****************************************************************************/
void DispLogin(void)
{ int i;
// 顯示loding...
GUI_PutString(30, 25, "Loading...");
// 顯示進度條
GUI_Rectangle( PROG_STARTX, PROG_STARTY,
PROG_STARTX+PROG_LENGTH, PROG_STARTY+PROG_HIGH, 1);
// 循環增長進度
for(i=3; i<100; i+=1)
{ // 改變進度條顯示
GUI_RectangleFill( PROG_STARTX, PROG_STARTY,
PROG_STARTX+i, PROG_STARTY+PROG_HIGH, 1);
// 若進度到尾數為5時,則使能"Loading..."顯示
if((i%10) == 5)
{ GUI_PutString(30, 25, "Loading...");
}
// 若進度到尾數為0時,則禁止"Loading..."顯示
if((i%10) == 0)
{ GUI_PutString(30, 25, " ");
}
OSTimeDly(8);
}
}
/****************************************************************************
* 名稱: DispZlgGui()
* 功能: 屏保--再現"ZLG/GUI"。
* 隨機位置顯示ZLG/GUI的Logo(動畫)
* 入口參數: 無
* 出口參數: 無
****************************************************************************/
void DispZlgGui(void)
{ uint8 x0, y0;
while(1)
{ // 取得隨機位置坐標
x0 = rand()&0x7f;
y0 = rand()&0x3f;
if(x0 > (GUI_LCM_XMAX-35))
{ x0 = x0>>1;
}
if(y0 > (GUI_LCM_YMAX-10))
{ y0 = y0>>1;
}
// 顯示Logo
GUI_LoadPic( x0, y0,
(uint8 *)LOGO_DAT,
88, 29);
// 延時
OSTimeDly(100);
// 清除顯示
GUI_RectangleFill( x0, y0,
x0+88, y0+29,
0 );
}
}
/*********************************************************************************************************
** Task0 任務0
** 功能:使用ZLG/GUI顯示單色圖形。
** 先使用進度條顯示加載進度,然后使用"ZLG/GUI"的logo圖片在屏幕隨機
** 位置上顯示,并不斷的變換顯示位置。
********************************************************************************************************/
void Task0(void *pdata)
{
pdata = pdata;
TargetInit ();
// 初始化隨機總機
srand(96169);
GUI_Initialize();
GUI_SetColor(1, 0);
DispLogin(); // 顯示加載進度條
while (1)
{
GUI_ClearSCR(); // 清屏
DispZlgGui(); // 顯示logo圖片
}
}
/*********************************************************************************************************
** End Of File
********************************************************************************************************/
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -