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

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

?? guidemo_graph.c

?? 一個在44b0上移植成功的ucgui
?? 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_1);
    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_Alloc((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_Alloc((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_Alloc((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",
                    "Optimized 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一区二区三区免费野_久草精品视频
中文字幕乱码日本亚洲一区二区 | 欧美男女性生活在线直播观看| 国产日韩欧美亚洲| 久久精品国产亚洲一区二区三区| 欧美日韩在线直播| 亚洲国产乱码最新视频| 91在线高清观看| 中文字幕亚洲综合久久菠萝蜜| 国产一区二区三区免费观看| 日韩欧美国产午夜精品| 蜜桃av一区二区| 91精品国产欧美日韩| 日韩在线a电影| 6080午夜不卡| 免费看精品久久片| 日韩欧美aaaaaa| 久久成人麻豆午夜电影| 精品国产免费久久| 国产一区视频网站| 欧美激情一区在线观看| 成人性生交大片| 18成人在线视频| 在线国产电影不卡| 午夜久久久久久| 日韩精品一区二区三区在线观看 | 国产精品18久久久久久久久久久久| 精品捆绑美女sm三区| 国产专区欧美精品| 久久久精品一品道一区| 成人综合在线网站| 1024精品合集| 欧美性色综合网| 日韩成人一区二区| 亚洲精品一区二区三区精华液 | 日韩欧美国产精品一区| 国产麻豆精品一区二区| 国产精品私房写真福利视频| 97久久精品人人做人人爽| 亚洲自拍偷拍图区| 欧美一区二区三区视频在线观看| 麻豆精品一区二区综合av| 久久久久久久久久久久久女国产乱 | 91视频免费看| 午夜精品久久久久久久久久| 日韩欧美在线1卡| 国产精品一级二级三级| 亚洲视频在线观看三级| 欧美日韩一区在线观看| 加勒比av一区二区| 综合激情网...| 欧美日韩不卡一区| 久久er99精品| 亚洲视频一二三区| 9191成人精品久久| 国产成人免费在线| 一区二区三区高清不卡| 日韩午夜激情视频| 国产99久久久国产精品免费看| 亚洲精品视频在线观看免费| 在线综合+亚洲+欧美中文字幕| 国产精品一区一区| 亚洲综合免费观看高清完整版 | 激情综合网最新| 亚洲人成7777| 欧美大片免费久久精品三p| 从欧美一区二区三区| 午夜伦欧美伦电影理论片| 久久老女人爱爱| 色综合久久66| 国产一区二区三区不卡在线观看 | 亚洲日韩欧美一区二区在线| 69堂国产成人免费视频| 成人福利视频网站| 视频一区在线播放| 国产精品每日更新在线播放网址 | 欧美日韩在线播放三区| 国产盗摄一区二区| 午夜免费欧美电影| 国产清纯白嫩初高生在线观看91 | 欧美性猛片aaaaaaa做受| 欧美日韩www| 91精品办公室少妇高潮对白| 97aⅴ精品视频一二三区| 精品污污网站免费看| 欧美日韩三级视频| 精品一区二区三区免费毛片爱 | 欧美一区二区三区日韩| 99re免费视频精品全部| 精品一区二区三区在线视频| 亚洲美女视频一区| 国产三级三级三级精品8ⅰ区| 欧美日韩视频一区二区| 不卡的电影网站| 精品在线视频一区| 性做久久久久久久免费看| 国产精品视频一二| 精品国内二区三区| 欧美高清视频在线高清观看mv色露露十八 | 日韩天堂在线观看| 在线观看欧美精品| 丁香婷婷综合色啪| 久久久电影一区二区三区| 日本特黄久久久高潮| 欧美不卡一区二区| 在线一区二区三区| 成人激情综合网站| 国产精品主播直播| 美女久久久精品| 午夜天堂影视香蕉久久| 亚洲日本护士毛茸茸| 国产无一区二区| 欧美tickling网站挠脚心| 在线播放91灌醉迷j高跟美女| 在线免费不卡电影| 91视频在线观看| jvid福利写真一区二区三区| 国产一区二区剧情av在线| 免费日本视频一区| 日日嗨av一区二区三区四区| 一区二区三区四区精品在线视频| 中文字幕成人av| 国产日韩欧美不卡在线| 久久综合丝袜日本网| 日韩欧美国产精品一区| 欧美一级xxx| 正在播放一区二区| 91麻豆精品国产91久久久更新时间 | 成人性生交大片| 国产jizzjizz一区二区| 国产高清在线精品| 国产精品99久久久久久久vr| 国产美女在线精品| 国内成+人亚洲+欧美+综合在线| 美日韩一区二区| 久久国产精品72免费观看| 捆绑调教美女网站视频一区| 日本成人在线视频网站| 日韩国产欧美在线观看| 石原莉奈在线亚洲三区| 日韩激情一区二区| 日韩高清在线电影| 蜜桃久久久久久| 国产综合色精品一区二区三区| 黄网站免费久久| 国产一区二区不卡| 国产精品小仙女| 不卡高清视频专区| 91麻豆视频网站| 欧美午夜精品一区| 在线播放中文一区| 欧美成人一区二区三区| 久久精品亚洲乱码伦伦中文| 国产网站一区二区| 亚洲美女视频一区| 天天综合天天综合色| 久久成人久久爱| 国产不卡视频一区二区三区| zzijzzij亚洲日本少妇熟睡| 色婷婷久久久综合中文字幕| 欧美在线观看18| 日韩一区二区不卡| 国产无遮挡一区二区三区毛片日本| 国产精品久久久久一区二区三区 | 成av人片一区二区| 国产成人精品免费一区二区| 精品一区二区影视| 国产九色sp调教91| 成人av在线资源网| 欧洲生活片亚洲生活在线观看| 欧美日本一区二区在线观看| 欧美va亚洲va香蕉在线| 国产精品污网站| 亚洲一区二区在线免费看| 奇米精品一区二区三区在线观看一 | 国产精品自在在线| 91网站黄www| 555www色欧美视频| 久久久不卡影院| 亚洲综合偷拍欧美一区色| 免费成人结看片| hitomi一区二区三区精品| 91福利在线导航| 精品福利二区三区| xf在线a精品一区二区视频网站| 国产精品沙发午睡系列990531| 一区二区三区精密机械公司| 蜜桃久久精品一区二区| voyeur盗摄精品| 3d动漫精品啪啪1区2区免费| 国产日韩三级在线| 亚洲综合色网站| 国产一区美女在线| 91成人免费电影| 精品国产91九色蝌蚪| 亚洲精品一卡二卡| 国产美女一区二区三区| 欧美三日本三级三级在线播放| 久久精品视频免费观看| 亚洲线精品一区二区三区八戒| 国产在线精品一区在线观看麻豆|