亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? guidemo_graph.c

?? UC_GUI開發源代碼,里面含有范例,源文件
?? C
字號:
/*
*********************************************************************************************************
*                                                uC/GUI
*                        Universal graphic software for embedded applications
*
*                       (c) Copyright 2002, Micrium Inc., Weston, FL
*                       (c) Copyright 2002, SEGGER Microcontroller Systeme GmbH
*
*              礐/GUI is protected by international copyright laws. Knowledge of the
*              source code may not be used to write a similar product. This file may
*              only be used in accordance with a license and should not be redistributed
*              in any way. We appreciate your understanding and fairness.
*
----------------------------------------------------------------------
File        : GUIDEMO_Graph.c
Purpose     : Several GUIDEMO routines
----------------------------------------------------------------------
*/

#include "GUI.h"
#include "LCD_ConfDefaults.h"      /* valid LCD configuration */
#include <math.h>
#include <stdlib.h>
#include "GUIDEMO.h"

#if GUI_SUPPORT_MEMDEV

/*********************************************************************
*
*       Structure containing information for drawing routine
*
**********************************************************************
*/

typedef struct {
  I16 * aY;
} PARAM;

/*********************************************************************
*
*       Defines
*
**********************************************************************
*/

#if GUIDEMO_LARGE
  #define YSIZE   (LCD_YSIZE - 100)
#else
  #define YSIZE   (LCD_YSIZE - 30)
#endif
/*
#if LCD_YSIZE > 120
  #define YSIZE   (LCD_YSIZE - 100)
#else
  #define YSIZE   20
#endif
*/

#define DEG2RAD (3.1415926f / 180)

#if LCD_BITSPERPIXEL == 1
  #define COLOR_GRAPH0 GUI_WHITE
  #define COLOR_GRAPH1 GUI_WHITE
#else
  #define COLOR_GRAPH0 GUI_GREEN
  #define COLOR_GRAPH1 GUI_YELLOW
#endif

/*********************************************************************
*
*       Draws the graph
*
**********************************************************************
*/

static void _Draw(void * p) {
  int i;
  PARAM * pParam = (PARAM *)p;
  GUI_SetBkColor(GUI_BLACK);
  GUI_SetColor(GUI_DARKGRAY);
  GUI_ClearRect(19, (LCD_YSIZE - 20) - YSIZE, (LCD_XSIZE - 2), (LCD_YSIZE - 21));
  for (i = 0; i < (YSIZE / 2); i += 20) {
    GUI_DrawHLine((LCD_YSIZE - 20) - (YSIZE / 2) + i, 19, (LCD_XSIZE - 2));
    if (i) {
      GUI_DrawHLine((LCD_YSIZE - 20) - (YSIZE / 2) - i, 19, (LCD_XSIZE - 2));
    }
  }
  for (i = 40; i < (LCD_XSIZE - 20); i += 40) {
    GUI_DrawVLine(18 + i, (LCD_YSIZE - 20) - YSIZE, (LCD_YSIZE - 21));
  }
  GUI_SetColor(COLOR_GRAPH0);
  GUI_DrawGraph(pParam->aY, (LCD_XSIZE - 20), 19, (LCD_YSIZE - 20) - YSIZE);
}

static void _Draw2(void * p) {
  PARAM * pParam = (PARAM *)p;
  _Draw(p);
  GUI_SetColor(COLOR_GRAPH1);
  GUI_DrawGraph(pParam->aY+15, (LCD_XSIZE - 20), 19, (LCD_YSIZE - 20) - YSIZE);
}

/*********************************************************************
*
*       Labels the x & y-axis
*
**********************************************************************
*/

static void _Label(void) {
  int x, y;
  GUI_SetPenSize(1);
  GUI_ClearRect(0, (LCD_YSIZE - 21) - YSIZE, (LCD_XSIZE - 1), (LCD_YSIZE - 1));
  GUI_DrawRect(18, (LCD_YSIZE - 21) - YSIZE, (LCD_XSIZE - 1), (LCD_YSIZE - 20));
  GUI_SetFont(&GUI_Font6x8);
  for (x = 0; x < (LCD_XSIZE - 20); x += 40) {
    int xPos = x + 18;
    GUI_DrawVLine(xPos, (LCD_YSIZE - 20), (LCD_YSIZE - 14));
    GUI_DispDecAt(x / 40, xPos - 2, (LCD_YSIZE - 9), 1);
  }
  for (y = 0; y < YSIZE / 2; y += 20) {
    int yPos = (LCD_YSIZE - 20) - YSIZE / 2 + y;
    GUI_DrawHLine(yPos, 13, 18);
    if (y) {
      GUI_GotoXY(1, yPos - 4);
      GUI_DispSDec(-y / 20, 2);
      yPos = (LCD_YSIZE - 20) - YSIZE / 2 - y;
      GUI_DrawHLine(yPos, 13, 18);
      GUI_GotoXY(1, yPos - 4);
      GUI_DispSDec(y / 20, 2);
    } else {
      GUI_DispCharAt('0', 7, yPos - 4);
    }
  }
}

/*********************************************************************
*
*       Draws random data
*
**********************************************************************
*/

static void _GetRandomData(I16 * paY, int Time, int n) {
  int aDiff, i;
  if (Time > 5000)
    Time -= 5000;
  if (Time > 2500)
    Time = 5000 - Time;
  Time /= 200;
  aDiff = Time * Time + 1;
  for (i = 0; i < n; i++) {
    if (!i) {
      paY[i] = rand() % YSIZE;
    } else {
      I16 yNew;
      int yD = aDiff - (rand() % aDiff);
      if (rand() & 1) {
        yNew = paY[i-1] + yD;
      } else {
        yNew = paY[i-1] - yD;
      }
      if (yNew > YSIZE) {
        yNew -= yD;
      } else { if (yNew < 0)
        yNew += yD;
      }
      paY[i] = yNew;
    }
  }
}

static void _ShowText(const char * sText) {
  GUI_SetColor(GUI_WHITE);
  GUI_SetBkColor(GUI_RED);
  #if GUIDEMO_LARGE
    GUI_ClearRect(0, 0, LCD_XSIZE, 60);
    GUI_SetFont(&GUI_FontComic18B_ASCII);
    GUI_DispStringAt(sText, 10, 20);
  #else
    sText = sText;  /* Avoid warning */
  #endif
}

static void _LabelMS(void) {
  GUI_SetFont(&GUI_Font6x8);
  #if GUIDEMO_LARGE
    GUI_DispStringAt("msec/graph:", 10, 50);
  #endif
}

static void _DisplayTime(int tDiff) {
  #if GUIDEMO_LARGE
    GUI_GotoXY(80, 50);
    GUI_SetColor(GUI_WHITE);
    GUI_SetBkColor(GUI_RED);
    GUI_DispDecSpace(tDiff, 3);
  #else
    tDiff = tDiff; /* Avoid warning */
  #endif
}

static void _DemoRandomGraph(void) {
  PARAM Param;
  int tDiff, t0, Cnt = 0;
  GUI_RECT Rect = {19, (LCD_YSIZE - 20) - YSIZE, (LCD_XSIZE - 2), (LCD_YSIZE - 21)};
  GUI_HMEM hMem = GUI_ALLOC_AllocZero((LCD_XSIZE - 20) * sizeof(I16));
  _ShowText("Random graph");
  Param.aY = (I16*)GUI_ALLOC_h2p(hMem);
  /*
  GUI_SetFont(&GUI_Font6x8);
  GUI_DispStringAt("msec/graph:", 10, 50);
  */
  _LabelMS();
  t0 = GUI_GetTime();
  while(((tDiff = (GUI_GetTime() - t0)) < 10000) && !GUIDEMO_CheckCancel()) {
    int t1, tDiff2;
    _GetRandomData(Param.aY, tDiff, (LCD_XSIZE - 20));
    t1 = GUI_GetTime();
    GUI_MEMDEV_Draw(&Rect, _Draw, &Param, 0, GUI_MEMDEV_NOTRANS);
    tDiff2 = GUI_GetTime() - t1;
    if (tDiff2 < 100) {
      GUI_Delay(100 - tDiff2);
    }
    if(!((++Cnt)%10)) {
      _DisplayTime(tDiff2);
      /*
      GUI_GotoXY(80, 50);
      GUI_SetColor(GUI_WHITE);
      GUI_SetBkColor(GUI_RED);
      GUI_DispDecSpace(tDiff2, 3);
      */
    }
  }
  GUI_ALLOC_Free(hMem);
}

/*********************************************************************
*
*       Draws a sine wave
*
**********************************************************************
*/

static void _GetSineData(I16 * paY, int n) {
  int i;
  for (i = 0; i < n; i++) {
    float s = sin(i * DEG2RAD * 4);
    paY[i] = s * YSIZE / 2 + YSIZE / 2;
  }
}

static void _DemoSineWave(void) {
  PARAM Param;
  I16 * pStart;
  int t0, Cnt = 0;
  GUI_RECT Rect = {19, (LCD_YSIZE - 20) - YSIZE, (LCD_XSIZE - 2), (LCD_YSIZE - 21)};
  GUI_HMEM hMem = GUI_ALLOC_AllocZero((LCD_XSIZE + 90) * sizeof(I16));
  _ShowText("Sine wave");
  pStart = (I16*)GUI_ALLOC_h2p(hMem);
  _GetSineData(pStart, LCD_XSIZE + 90);
  /*
  GUI_SetFont(&GUI_Font6x8);
  GUI_DispStringAt("msec/graph:", 10, 50);
  */
  _LabelMS();
  t0 = GUI_GetTime();
  while(((GUI_GetTime() - t0) < 10000) && !GUIDEMO_CheckCancel()) {
    int t1, tDiff2;
    if (Cnt % 90) {
      Param.aY++;
    } else {
      Param.aY = pStart;
    }
    t1 = GUI_GetTime();
    GUI_MEMDEV_Draw(&Rect, _Draw2, &Param, 0, GUI_MEMDEV_NOTRANS);
    tDiff2 = GUI_GetTime() - t1;
    if (tDiff2 < 100) {
      GUI_Delay(100 - tDiff2);
    }
    if(!((++Cnt) % 10)) {
      _DisplayTime(tDiff2);
      /*
      GUI_GotoXY(80, 50);
      GUI_SetColor(GUI_WHITE);
      GUI_SetBkColor(GUI_RED);
      GUI_DispDecSpace(tDiff2, 3);
      */
    }
  }
  GUI_ALLOC_Free(hMem);
}

/*********************************************************************
*
*       Adds several waves
*
**********************************************************************
*/

static void _DrawOrData(GUI_COLOR Color, I16 * paY) {
  GUI_SetColor(Color);
  GUI_DrawGraph(paY, (LCD_XSIZE - 20), 19, (LCD_YSIZE - 20) - YSIZE);
}

static void _DemoOrData(void) {
  int i;
  PARAM Param;
  GUI_RECT Rect = {19, (LCD_YSIZE - 20) - YSIZE, (LCD_XSIZE - 2), (LCD_YSIZE - 21)};
  GUI_HMEM hMem = GUI_ALLOC_AllocZero((LCD_XSIZE + 90) * sizeof(I16));
  _ShowText("Several waves...");
  Param.aY = (I16*)GUI_ALLOC_h2p(hMem);
  _GetSineData(Param.aY, LCD_XSIZE + 90);
  GUI_MEMDEV_Draw(&Rect, _Draw, &Param, 0, GUI_MEMDEV_NOTRANS);
  for (i = 0; (i < 90) && !GUIDEMO_CheckCancel(); i++) {
    _DrawOrData(GUI_GREEN, ++Param.aY);
    GUI_Delay(10);
  }
  GUI_ALLOC_Free(hMem);
}

/*********************************************************************
*
*       GUIDEMO_Graph
*
**********************************************************************
*/

void GUIDEMO_Graph(void) {
  GUIDEMO_ShowIntro("Drawing a graph",
                    "\nOptimized drawing routine for"
                    "\ndrawing graph data");
  GUI_Clear();
  _Label();
  _DemoRandomGraph();
  GUIDEMO_NotifyStartNext();
  _DemoSineWave();
  GUIDEMO_NotifyStartNext();
  _DemoOrData();
}

#elif defined(NC30) || defined(NC308)

void GUIDEMO_Graph(void) {}

#endif
	 	 			 		    	 				 	  			   	 	 	 	 	 	  	  	      	   		 	 	 		  		  	 		 	  	  			     			       	   	 			  		    	 	     	 				  	 					 	 			   	  	  			 				 		 	 	 			     			 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久se这里有精品| 欧美三级视频在线| 欧美肥妇bbw| 国产精品少妇自拍| 久久精品国产亚洲高清剧情介绍| 99久久国产免费看| 欧美精品一区二区在线观看| 视频一区欧美精品| 色婷婷综合久色| 国产人伦精品一区二区| 欧美aa在线视频| 欧美另类z0zxhd电影| 亚洲欧美日韩中文播放| 懂色中文一区二区在线播放| 日韩一区二区三区高清免费看看| 亚洲一线二线三线视频| 成人黄色免费短视频| 久久久久久久久久久黄色| 日本亚洲最大的色成网站www| 色美美综合视频| 亚洲视频一区二区免费在线观看| 国产高清不卡一区二区| 久久无码av三级| 精品一区二区影视| 欧美变态tickle挠乳网站| 蜜臀av性久久久久蜜臀aⅴ四虎 | 欧美日韩国产系列| 亚洲女性喷水在线观看一区| 99久久国产免费看| 亚洲男人的天堂一区二区| 91麻豆文化传媒在线观看| 亚洲视频精选在线| 91女厕偷拍女厕偷拍高清| 中文字幕在线不卡一区| av一二三不卡影片| 一区二区三区四区五区视频在线观看| eeuss鲁片一区二区三区在线看| 欧美激情一区二区三区蜜桃视频| 国产成人夜色高潮福利影视| 久久精品日产第一区二区三区高清版| 91蝌蚪porny| 亚洲日本在线a| 欧美中文字幕一二三区视频| 亚洲国产成人av网| 正在播放亚洲一区| 国产在线看一区| 欧美在线免费观看视频| 亚洲丶国产丶欧美一区二区三区| 欧美日韩精品三区| 麻豆极品一区二区三区| 国产三级精品在线| 色哟哟国产精品| 日韩中文字幕一区二区三区| 日韩一区二区精品在线观看| 国产九九视频一区二区三区| 中文字幕在线不卡一区| 欧美精选一区二区| 国产suv精品一区二区三区| 亚洲欧美自拍偷拍色图| 欧美精品乱码久久久久久按摩| 免费在线视频一区| 亚洲国产精品99久久久久久久久| 色综合天天视频在线观看| 亚洲成人中文在线| 欧美国产精品中文字幕| 欧美日韩亚洲丝袜制服| 国产精品99久久久| 天天爽夜夜爽夜夜爽精品视频| 精品99一区二区| 91福利视频在线| 国产精品一区二区久久精品爱涩| 亚洲另类中文字| 精品福利一二区| 欧美日韩国产系列| www.日韩精品| 裸体健美xxxx欧美裸体表演| 中文字幕一区二区三| 欧美本精品男人aⅴ天堂| 在线免费亚洲电影| 成人午夜短视频| 蜜桃视频一区二区| 一区二区三区成人| 国产精品久久久久毛片软件| 日韩午夜激情av| 欧美日韩在线不卡| 91在线观看视频| 国产福利精品导航| 精品一区二区三区日韩| 日一区二区三区| 亚洲精品国产无套在线观| 26uuu欧美| 欧美大胆一级视频| 91精品国产综合久久久久久久久久| 成人性视频免费网站| 国模冰冰炮一区二区| 日韩在线观看一区二区| 一区二区日韩av| 日韩美女啊v在线免费观看| 欧美国产激情一区二区三区蜜月| 日韩欧美一二三| 欧美精品九九99久久| 欧洲另类一二三四区| av资源网一区| 91网站黄www| 色综合久久88色综合天天免费| 成人黄色在线看| 成人毛片在线观看| 国产精品一品视频| 岛国一区二区在线观看| 高清成人在线观看| 丰满放荡岳乱妇91ww| 成人午夜视频在线| 成人不卡免费av| 一本大道久久a久久综合| heyzo一本久久综合| 93久久精品日日躁夜夜躁欧美| www.亚洲激情.com| 在线看不卡av| 91精品一区二区三区久久久久久| 欧美久久久久久蜜桃| 日韩免费看的电影| 久久久综合九色合综国产精品| 久久麻豆一区二区| 中文字幕亚洲成人| 亚洲最快最全在线视频| 亚洲一区二区三区中文字幕| 亚洲一区二区影院| 老司机午夜精品| 成人影视亚洲图片在线| av中文字幕不卡| 欧美日韩mp4| 国产亚洲1区2区3区| 国产精品乱人伦中文| 亚洲综合免费观看高清完整版在线| 亚洲国产一区视频| 激情都市一区二区| aaa亚洲精品一二三区| 欧美天堂亚洲电影院在线播放| 欧美电影一区二区三区| 精品人伦一区二区色婷婷| 欧美激情在线看| 亚洲福利视频一区| 国产一区二区三区蝌蚪| 99精品黄色片免费大全| 51午夜精品国产| 久久久久久久久久久久久久久99| 中文字幕字幕中文在线中不卡视频| 亚洲国产美女搞黄色| 国产麻豆日韩欧美久久| 91精品1区2区| 国产无人区一区二区三区| 亚洲综合一区二区精品导航| 毛片不卡一区二区| 一本大道综合伊人精品热热| 欧美刺激脚交jootjob| 亚洲少妇最新在线视频| 免费久久精品视频| 色噜噜狠狠色综合欧洲selulu| 欧美一区二区福利视频| 中文字幕不卡三区| 麻豆久久久久久久| 在线免费不卡电影| 国产精品免费人成网站| 久久er精品视频| 欧美午夜一区二区三区免费大片| 久久综合狠狠综合久久综合88 | 日本欧美大码aⅴ在线播放| 成人免费va视频| 日韩欧美你懂的| 亚洲午夜激情av| 91视频在线观看| 中文字幕成人av| 国产综合久久久久久鬼色 | 青青草国产精品亚洲专区无| 成人午夜电影网站| 久久亚洲一区二区三区四区| 日韩av一区二区三区| 色婷婷av一区二区三区大白胸| 国产喂奶挤奶一区二区三区| 久久99精品国产.久久久久久| 欧美色男人天堂| 亚洲一二三四区| 91高清视频免费看| 一区二区视频在线看| 成人aaaa免费全部观看| 欧美韩国一区二区| 高清成人免费视频| 久久精品男人天堂av| 国产一区二区0| 久久久久久久久久久99999| 久久精品国产免费看久久精品| 欧美影院精品一区| 亚洲一区成人在线| 91极品美女在线| 亚洲国产综合色| 欧美二区在线观看| 麻豆一区二区99久久久久| 日韩欧美黄色影院| 精品一区在线看| 欧美激情在线一区二区三区|