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

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

?? guidemo_touch.c

?? ucgu最新版本 4.14
?? C
字號:
/*********************************************************************
*                SEGGER MICROCONTROLLER SYSTEME GmbH                 *
*        Solutions for real time microcontroller applications        *
**********************************************************************
*                                                                    *
*        (c) 1996 - 2007  SEGGER Microcontroller Systeme GmbH        *
*                                                                    *
*        Internet: www.segger.com    Support:  support@segger.com    *
*                                                                    *
**********************************************************************

** emWin V4.14 - Graphical user interface for embedded applications **
emWin 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 re-
distributed in any way. We appreciate your understanding and fairness.
----------------------------------------------------------------------
File        : GUIDEMO_Touch
Purpose     : Touch demo
---------------------------END-OF-HEADER------------------------------
*/

#include "GUI.h"
#include "LCD_ConfDefaults.h"      /* valid LCD configuration */
#include "GUIDEMO.h"

#if (GUI_WINSUPPORT && GUI_SUPPORT_TOUCH)

#include "BUTTON.h"
#include "EDIT.h"

#define countof(Obj) (sizeof(Obj)/sizeof(Obj[0]))

/*********************************************************************
*
*       Static functions
*
**********************************************************************
*/

static int _Log2Phys(int l, I32 l0, I32 l1, I32 p0, I32 p1) {
  return p0 + ((p1 - p0) * (l - l0)) / (l1 - l0);
}

static void _Calibrate(int Coord, int Log0, int Log1, int Phys0, int Phys1, int *p0, int *p1) {
  int l0 = 0;
  int l1 = (Coord == GUI_COORD_X) ? LCD_XSIZE - 1 : LCD_YSIZE - 1;
  *p0 = _Log2Phys(l0, Log0, Log1, Phys0, Phys1);
  *p1 = _Log2Phys(l1, Log0, Log1, Phys0, Phys1);
}

/*********************************************************************
*
*       _ExecCalibration
*
**********************************************************************
*/

static void _ExecCalibration(void) {
  int ax_Phys[2],ay_Phys[2];
/* calculate log. Positions */
  int ax[2] = { 15, LCD_XSIZE -1-15};
//  const int ay[2] = { 15, LCD_YSIZE-1-15};
  int ay[2] = { LCD_YSIZE-1-15, 15};
  GUI_TOUCH_SetDefaultCalibration();
/* _Calibrate upper left */
  GUI_SetBkColor(GUI_RED);  
  GUI_Clear();
  GUI_SetColor(GUI_WHITE);  GUI_FillCircle(ax[0], ay[0], 10);
  GUI_SetColor(GUI_RED);    GUI_FillCircle(ax[0], ay[0], 5);
  GUI_SetColor(GUI_WHITE);
  GUI_DispStringAt("Press here", ax[0]+20, ay[0]);
  do {
    GUI_PID_STATE State;
    GUI_TOUCH_GetState(&State);
    if (State.Pressed) {
      ax_Phys[0] = GUI_TOUCH_GetxPhys();
      ay_Phys[0] = GUI_TOUCH_GetyPhys();
      break;
    }
    GUI_Delay (100);
  } while (1);
/* Tell user to release */
  GUI_Clear();
  GUI_DispStringAt("OK", ax[0]+20, ay[0]);
  do {
    GUI_PID_STATE State;
    GUI_TOUCH_GetState(&State);
    if (State.Pressed == 0) {
      break;
    }
    GUI_Delay (100);
  } while (1);
/* _Calibrate lower right */
  GUI_SetBkColor(GUI_RED);  
  GUI_Clear();
  GUI_SetColor(GUI_WHITE);  GUI_FillCircle(ax[1], ay[1], 10);
  GUI_SetColor(GUI_RED);    GUI_FillCircle(ax[1], ay[1], 5);
  GUI_SetColor(GUI_WHITE);
  GUI_SetTextAlign(GUI_TA_RIGHT);
  GUI_DispStringAt("Press here", ax[1]-20, ay[1]);
  do {
    GUI_PID_STATE State;
    GUI_TOUCH_GetState(&State);
    if (State.Pressed) {
      ax_Phys[1] = GUI_TOUCH_GetxPhys();
      ay_Phys[1] = GUI_TOUCH_GetyPhys();
      break;
    }
    GUI_Delay (100);
  } while (1);
  GUI_TOUCH_Calibrate(GUI_COORD_X, ax[0], ax[1], ax_Phys[0], ax_Phys[1]);
  GUI_TOUCH_Calibrate(GUI_COORD_Y, ay[0], ay[1], ay_Phys[0], ay_Phys[1]);
  { /* calculate and display values for configuration file */
    int x0, x1;
    int y0, y1;
    GUI_Clear();
    _Calibrate(GUI_COORD_X, ax[0], ax[1], ax_Phys[0], ax_Phys[1], &x0, &x1);
    _Calibrate(GUI_COORD_Y, ay[0], ay[1], ay_Phys[0], ay_Phys[1], &y0, &y1);
    GUI_DispStringAt("x0: ", 0, 0); GUI_DispDec(x0, 4); GUI_DispNextLine();
    GUI_DispString  ("x1: ");       GUI_DispDec(x1, 4); GUI_DispNextLine();
    GUI_DispString  ("y0: ");       GUI_DispDec(y0, 4); GUI_DispNextLine();
    GUI_DispString  ("y1: ");       GUI_DispDec(y1, 4); GUI_DispNextLine();
    GUI_DispString  ("Please touch display to continue...");
    GUI_Delay(1000);
    do {
      GUI_PID_STATE State;
      GUI_TOUCH_GetState(&State);
      if (State.Pressed)
        break;
      GUI_Delay (10);
    } while (1);
  }
}

/*********************************************************************
*
*       _TestCalibration
*
**********************************************************************
*/

static void _TestCalibration(void) {
  int IdleCnt=0;
  BUTTON_Handle hButton;
  GUI_SetBkColor(GUI_RED);  
  GUI_SetColor(GUI_WHITE);  
  GUI_Clear();
  hButton =  BUTTON_Create( 225, 15, 80, 40, 1, BUTTON_CF_SHOW );
  BUTTON_SetText (hButton, "ABORT");
  BUTTON_SetFont (hButton, &GUI_FontComic18B_ASCII);
  while ((IdleCnt<50) && (GUI_GetKey()==0)) {
    static GUI_PID_STATE StateLast;
    GUI_PID_STATE State;
    GUI_TOUCH_GetState(&State);
    if ((StateLast.Pressed != State.Pressed) && (State.Pressed == 0)) {
      GUI_Clear();
    }
    if ((StateLast.x != State.x) || ((StateLast.y != State.y))) {
      if (State.Pressed) {
        GUI_FillCircle(State.x, State.y, 5);
      }
      StateLast = State;
    }
    if (State.Pressed) {
      IdleCnt =0;
    } else {
      IdleCnt++;
    }
    GUI_Delay (100);
  }
  EDIT_Delete(hButton);
}

/*********************************************************************
*
*       _ExecKeyboard
*
**********************************************************************

This creates a sample keyboard.
The routine returns after ENTER or ESC has been pressed.
*/

#if (LCD_XSIZE == 320) && (LCD_YSIZE == 240)

static char _acText[] = { '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '='
                        ,0, 'Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P'
                        ,0, 'A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L', 'Q'
                        ,0, 'Z', 'X', 'C', 'V', 'B', 'N', 'M', '

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
琪琪久久久久日韩精品| 国产精品成人在线观看| 免费日本视频一区| 3d动漫精品啪啪一区二区竹菊 | 国产精品美女www爽爽爽| 国产精品一二三四| 1区2区3区欧美| 91成人免费电影| 五月天亚洲精品| 欧美精品一区二区三区久久久| 国产九九视频一区二区三区| 亚洲国产高清在线观看视频| 色呦呦网站一区| 三级影片在线观看欧美日韩一区二区| 欧美一区二区三区播放老司机| 激情综合色综合久久| 中文字幕欧美国产| 在线观看日韩一区| 久久成人羞羞网站| 最新热久久免费视频| 日韩午夜小视频| 成人av网站在线观看免费| 亚洲国产视频网站| 2017欧美狠狠色| 91电影在线观看| 国产乱码精品一区二区三 | 色综合久久中文综合久久牛| 亚洲国产sm捆绑调教视频| 欧美videofree性高清杂交| 成人国产精品视频| 日本一道高清亚洲日美韩| 久久影院午夜论| 欧美性猛交一区二区三区精品| 黄色资源网久久资源365| 亚洲激情自拍偷拍| 久久综合久久久久88| 91久久国产最好的精华液| 久久成人av少妇免费| 亚洲精品第1页| 欧美国产精品久久| 欧美一区二区三区思思人| av一区二区三区四区| 久久疯狂做爰流白浆xx| 亚洲国产精品尤物yw在线观看| 国产嫩草影院久久久久| 91麻豆精品91久久久久同性| 99国产精品一区| 国产成人亚洲综合a∨婷婷| 五月天欧美精品| 亚洲欧美色图小说| 国产亚洲精品福利| 日韩小视频在线观看专区| 在线精品视频免费观看| 99国产欧美久久久精品| 懂色av一区二区三区免费看| 老司机精品视频线观看86| 尤物在线观看一区| 亚洲女子a中天字幕| 国产欧美综合在线| www久久精品| 精品久久久久久久久久久久包黑料| 欧美日韩视频第一区| 97精品久久久午夜一区二区三区 | 91色婷婷久久久久合中文| 国产综合成人久久大片91| 首页国产丝袜综合| 亚洲777理论| 亚洲一区二区精品3399| 亚洲精品国产a久久久久久| 亚洲乱码国产乱码精品精小说 | 一区二区日韩电影| 亚洲人成影院在线观看| 中文字幕一区二区三区在线观看| 精品国产乱码久久久久久闺蜜 | 日韩高清不卡一区二区三区| 亚洲成人三级小说| 亚洲电影第三页| 香蕉加勒比综合久久| 无码av中文一区二区三区桃花岛| 亚洲午夜在线电影| 亚洲成人777| 日韩精品欧美成人高清一区二区| 婷婷中文字幕综合| 在线视频一区二区三| 99视频精品在线| 91香蕉视频mp4| 在线免费亚洲电影| 欧美日韩亚洲综合一区二区三区| 欧美日韩视频在线观看一区二区三区 | 国产一区欧美二区| 国产精品一区二区久久不卡| 成人手机电影网| www.欧美精品一二区| 91在线精品一区二区| 欧美亚洲国产一区二区三区va | 国产精品一品二品| 成人av免费在线观看| 一本久久a久久精品亚洲| 欧美在线你懂的| 日韩欧美黄色影院| 亚洲国产精华液网站w| 夜夜精品视频一区二区 | 亚洲免费视频中文字幕| 亚洲高清不卡在线| 国产一区二区导航在线播放| 成人av影视在线观看| 欧美日韩一区二区三区视频| 欧美大度的电影原声| 国产精品护士白丝一区av| 五月婷婷久久丁香| 国产成人精品1024| 欧美男女性生活在线直播观看| 日韩欧美国产一区二区三区 | 欧美中文字幕一区二区三区 | 午夜电影久久久| 国精产品一区一区三区mba视频| 97久久超碰国产精品| 欧美一区二区三区喷汁尤物| 国产亚洲欧美日韩俺去了| 亚洲成a人片在线不卡一二三区| 老司机免费视频一区二区三区| av在线综合网| 26uuuu精品一区二区| 亚洲午夜国产一区99re久久| 国产制服丝袜一区| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 亚洲精品在线免费观看视频| 亚洲精品中文字幕在线观看| 韩国女主播一区| 欧美视频中文字幕| 中文字幕不卡在线播放| 日韩电影在线观看网站| 99久久777色| 久久综合九色综合欧美就去吻 | 日韩欧美久久久| 一区二区三区四区亚洲| 国产成人在线看| 日韩美一区二区三区| 一区二区三区不卡在线观看| 久久精品亚洲精品国产欧美kt∨| 亚洲在线一区二区三区| 高清免费成人av| 久久在线观看免费| 久久疯狂做爰流白浆xx| 欧美区一区二区三区| 亚洲一区影音先锋| 99精品视频在线免费观看| 国产三级精品在线| 国产中文一区二区三区| 欧美一二三区在线| 偷拍一区二区三区| 在线视频国产一区| 亚洲乱码精品一二三四区日韩在线| 成人h精品动漫一区二区三区| 精品少妇一区二区| 老司机精品视频一区二区三区| 欧美裸体一区二区三区| 亚洲一二三四区| 日本高清不卡在线观看| 亚洲丝袜精品丝袜在线| 99天天综合性| 亚洲免费观看高清完整版在线观看| 不卡视频一二三| 国产精品久久久久影院亚瑟| 成人性生交大合| 国产精品人成在线观看免费| 国产传媒欧美日韩成人| 国产视频一区二区三区在线观看| 国产传媒一区在线| 中文成人综合网| 99久久精品国产一区二区三区| 综合色天天鬼久久鬼色| 色婷婷综合久久久久中文 | 久久久久99精品国产片| 精品一区二区影视| 久久女同性恋中文字幕| 成人综合婷婷国产精品久久蜜臀 | 国产欧美1区2区3区| 成人av影视在线观看| 亚洲视频1区2区| 欧美丝袜第三区| 六月婷婷色综合| 国产欧美精品一区aⅴ影院| 99国产一区二区三精品乱码| 亚洲激情在线播放| 成人国产免费视频| 99久久99久久综合| 91久久国产最好的精华液| 亚洲视频在线观看一区| 懂色av噜噜一区二区三区av| 亚洲少妇30p| 在线综合视频播放| 国产一二精品视频| 亚洲激情综合网| 欧美一区二区三区在线观看视频| 国产精品18久久久久久久久 | 白白色 亚洲乱淫| 亚洲国产精品久久艾草纯爱| 日韩欧美在线不卡| 成人av电影在线观看|