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

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

?? lcd6642x.c

?? 使用coderwarrior打開 內含中文字庫
?? C
?? 第 1 頁 / 共 4 頁
字號:
/*
*********************************************************************************************************
*                                                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        : 
Purpose     : 
----------------------------------------------------------------------
Version-Date---Author-Explanation
----------------------------------------------------------------------
1.04f   020204 JE     a) Hardwareinterface routines renamed:
                         ...REG01 -> ...A1, ...REG00 -> ...A0
1.04e   010706 JE     a) Bugfixes in DrawBitLine1BPP_Swap
1.04d   010627 JE     a) Bugfix in DrawBitLine1BPP_Swap
1.04c   010420 JE     a) Defaults for config switches added
1.04b   010418 JE     a) Accelerations of DrawVLine changed 
                         for using with cache
                      b) LCD_L0_DrawBitmap changed
1.04a   010417 RS     a) DrawVLine for "Philips mode" accelerated
1.04    010411 JE     a) 2bpp bitmaps accelerated
                      b) 1bpp bitmaps accelerated
1.02    010406 JE     a) Use of cache completed
                      b) DrawVLine optimized
1.00    010401 RS     a) Major work ...
0.02    010314 JE     a) REORG0 changed
                      b) _GetPixel0 & _GetPixel0 changed
                      c) Superfluous macro definitions SETPIXEL, ... deleted
                      d) PHYS_... new to handle rotation
0.01    010313 JE     a) Initialisation changed
0.00    001019 RS     Start of development
---------------------------LIST OF CONFIG SWITCHES--------------------
The following is a list of additional configuration switches for this
driver. These switches might not be listed in the manual, because
the manual mainly covers the general config switches which are
supported by all drivers.
----------------------------------------------------------------------
define ----------------------Explanation------------------------------
LCD_OPTIMIZE                 Controls the use of optimized routines.
LCD_CACHE                    If active cache is used
----------------------------------------------------------------------
Known problems or limitations with current version
----------------------------------------------------------------------
none
---------------------------END-OF-HEADER------------------------------
*/

#include <string.h>             /* for memset */
#include <stddef.h>           /* needed for definition of NULL */
#include "LCD_Private.h"      /* private modul definitions & config */
#include "GUI_Private.h"
#include "GUIDebug.h"
#include "LCD_0.h"            /* Defines for first display */

#if   ((LCD_CONTROLLER == 66420) | (LCD_CONTROLLER == 66421)) \
      && (!defined(WIN32) | defined(LCD_SIMCONTROLLER))



/*
  ********************************************************************
  *
  *                  ID translation table
  *
  ********************************************************************

This table contains 0, 1, 2, ... and serves as translation table for DDBs

*/

#define INTS(Base)  Base+0,Base+1,Base+2,Base+3,Base+4,Base+5,   \
                    Base+6,Base+7,Base+8,Base+9,Base+10,Base+11, \
                    Base+12,Base+13,Base+14,Base+15

static const LCD_PIXELINDEX aID[] = {
  INTS(0),
  #if LCD_MAX_LOG_COLORS > 0x10
    INTS(0x10),
  #endif
  #if LCD_MAX_LOG_COLORS > 0x20
    INTS(0x20),
    INTS(0x30),
  #endif
  #if LCD_MAX_LOG_COLORS > 0x40
    INTS(0x40),
    INTS(0x50),
    INTS(0x60),
    INTS(0x70),
  #endif
  #if LCD_MAX_LOG_COLORS > 0x80
    INTS(0x80),
    INTS(0x90),
    INTS(0xa0),
    INTS(0xb0),
    INTS(0xc0),
    INTS(0xd0),
    INTS(0xe0),
    INTS(0xf0)
  #endif
};

/*
        *********************************************************
        *                                                       *
        *           Defaults for configuration                  *
        *                                                       *
        *********************************************************
*/

#ifndef LCD_XORG0
  #define LCD_XORG0     (0)     /* leftmost position covered by this controller */
#endif

#ifndef LCD_YORG0
  #define LCD_YORG0     (0)     /* topmost position covered by this controller */
#endif

#ifndef LCD_STATIC
  #define LCD_STATIC static
#endif

#ifndef LCD_CACHE
  #define  LCD_CACHE (0)
#endif

#ifndef LCD_FIRSTSEG0
  #define LCD_FIRSTSEG0   (0)     /* Contr.0: first segment line used */
#endif

#ifndef LCD_LASTSEG0
  #define LCD_LASTSEG0    (LCD_XSIZE_PHYS-1)    /* Contr.0: last segment line used */
#endif

#ifndef LCD_FIRSTCOM0
  #define LCD_FIRSTCOM0   (0)     /* Contr.0: first com line used */
#endif

#ifndef LCD_LASTCOM0
  #define LCD_LASTCOM0    (LCD_YSIZE_PHYS-1)     /* Contr.0: last com line used */
#endif

#ifndef LCD_NUM_CONTROLLERS
  #define LCD_NUM_CONTROLLERS           (1)
#endif

#ifndef LCD_SUPPORT_CHECKINIT
  #define LCD_SUPPORT_CHECKINIT         (0)
#endif

#ifndef LCD_OPTIMIZE
  #define LCD_OPTIMIZE                (1)
#endif

/*      *********************************************************
        *                                                       *
        *              Controller dependend values              *
        *                                                       *
        *********************************************************
*/

#define MAX_REGS   18
#if (LCD_CONTROLLER == 66420)
  #define MAX_SEGS   160
  #define MAX_COMS   80
#elif (LCD_CONTROLLER == 66421)
  #define MAX_SEGS   160
  #define MAX_COMS   100
#endif

/*
        *********************************************************
        *                                                       *
        *           Compiler specific settings                  *
        *                                                       *
        *********************************************************
*/

#ifdef WIN32   /* Avoid warnings in MS-compiler */
  #pragma warning(disable : 4761)  // warning C4761: integral size mismatch in argument; conversion supplied
#endif

/*
        *********************************************************
        *
        *           Defines for simulation
        *
        *********************************************************
*/

#ifdef WIN32
  U8 SIM_Read00(void);
  U8 SIM_Read01(void);
  U8 SIM_Read10(void);
  U8 SIM_Read11(void);
  void SIM_Write00(U8 Data);
  void SIM_Write01(U8 Data);
  void SIM_Write10(U8 Data);
  void SIM_Write11(U8 Data);
/* Write data */
  #undef  LCD_WRITE_A0
  #define LCD_WRITE_A0(Data) SIM_Write00(Data)
  #undef  LCD_WRITE_A1
  #define LCD_WRITE_A1(Data) SIM_Write01(Data)
  #if LCD_NUM_CONTROLLERS > 1
    #undef  LCD_WRITE_A0C1
    #define LCD_WRITE_A0C1(Data) SIM_Write10(Data)
    #undef  LCD_WRITE_A1C1
    #define LCD_WRITE_A1C1(Data) SIM_Write11(Data)
  #endif  /* LCD_NUM_CONTROLLERS > 1 */
/* Read data */
  #undef  LCD_READ_A0
  #define LCD_READ_A0(Data) Data = SIM_Read00()
  #undef  LCD_READ_A1
  #define LCD_READ_A1(Data) Data = SIM_Read01()
  #if LCD_NUM_CONTROLLERS > 1
    #undef  LCD_READ_A0C0
    #define LCD_READ_A0C0(Data) Data = SIM_Read10()
    #undef  LCD_READ_A1C0
    #define LCD_READ_A1C0(Data) Data = SIM_Read11()
  #endif  /* LCD_NUM_CONTROLLERS > 1 */
#endif

/*
        *********************************************************
        *
        *          Remap ...A0, ...A1 -> ...CMD, ...DATA
        *
        *********************************************************
*/

#define LCD_WRITE_REG00 LCD_WRITE_A0
#define LCD_WRITE_REG01 LCD_WRITE_A1
#define LCD_READ_REG00  LCD_READ_A0
#define LCD_READ_REG01  LCD_READ_A1
#if LCD_NUM_CONTROLLERS > 1
  #define LCD_WRITE_REG10 LCD_WRITE_A0C1
  #define LCD_WRITE_REG11 LCD_WRITE_A1C1
  #define LCD_READ_REG10  LCD_READ_A0C1
  #define LCD_READ_REG11  LCD_READ_A1C1
#endif

/*
        *********************************************************
        *                                                       *
        *          Internal types                               *
        *                                                       *
        *********************************************************
*/

#define PIXELCOLOR U8
#define BKCOLOR LCD_BKCOLORINDEX
#define   COLOR LCD_COLORINDEX

/*
        *********************************************************
        *                                                       *
        *          Support for Segment/COMLUTs                  *
        *                                                       *
        *********************************************************
*/

/* For compatibility with older configs, define defaults */
#ifndef LCD_SUPPORT_COMTRANS
  #define LCD_SUPPORT_COMTRANS 0
#endif
#ifndef LCD_SUPPORT_SEGTRANS
  #define LCD_SUPPORT_SEGTRANS 0
#endif

#if LCD_SUPPORT_COMTRANS
  extern LCD_TYPE_COMTRANS LCD__aLine2Com0[LCD_LASTCOM0-LCD_FIRSTCOM0+1];
#endif

#if LCD_SUPPORT_SEGTRANS
  extern LCD_TYPE_SEGTRANS LCD__aRow2Seg0[LCD_LASTSEG0-LCD_FIRSTSEG0+1];
#endif

/*
        *********************************************************
        *                                                       *
        *           Macro calculations                          *
        *                                                       *
        *********************************************************
*/

#define LCD_MSB_SHIFT       (8-LCD_LSB_SHIFT)

/* Define number of used coms/segments per controller */
#define LCD_NUM_SEGS0 (LCD_LASTSEG0-LCD_FIRSTSEG0+1)
#define LCD_NUM_COMS0 (LCD_LASTCOM0-LCD_FIRSTCOM0+1)
#if (LCD_NUM_CONTROLLERS >1)
  #define LCD_NUM_SEGS1 (LCD_LASTSEG1-LCD_FIRSTSEG1+1)
  #define LCD_NUM_COMS1 (LCD_LASTCOM1-LCD_FIRSTCOM1+1)
#endif

/* Define total number of used coms/segments */
#if (LCD_NUM_CONTROLLERS ==1)
  #define LCD_NUM_SEGS LCD_NUM_SEGS0
  #define LCD_NUM_COMS LCD_NUM_COMS0
#elif (LCD_NUM_CONTROLLERS ==2)
  #define LCD_NUM_SEGS (LCD_NUM_SEGS0+LCD_NUM_SEGS1)
  #define LCD_NUM_COMS (LCD_NUM_COMS0+LCD_NUM_COMS1)
#endif

#define LCD_MEMSIZE ((LCD_BITSPERPIXEL*LCD_VXSIZE/LCD_BUSWIDTH)*(LCD_VYSIZE+LCD_NUM_EMPTY_LINES))

#define LCD_NUM_PAGES (LCD_NUM_COMS+7)/8

/*
        *********************************************************
        *                                                       *
        *      Configuration switch checking                    *
        *                                                       *
        *********************************************************

Please be aware that not all configuration errors can be captured !

*/

/* Check number of controllers */
#if ((LCD_NUM_CONTROLLERS >1) || (LCD_NUM_CONTROLLERS <0))
  #error "More than 1 controller not supported by this driver"
#endif

#if (!defined(LCD_INIT_R00)) | (!defined(LCD_INIT_R01))
  #error You have to define init values in the configuration for Registers 0,1
         /* Drivers needs to know as these values can not be read back ! */
#endif


/*********************************************************************
*
*           Static variables
*
**********************************************************************
*/

static struct {
  U8 ConReg0;
  U8 ConReg1;
  U8 x,y;
  #if LCD_CACHE
    U8 aaVMem[MAX_COMS][MAX_SEGS/4];  /* video memory */
  #endif
} aState[LCD_NUM_CONTROLLERS];

/*
        *********************************************************
        *                                                       *
        *              Macros, standard                         *
        *                                                       *
        *********************************************************

These macros can be found in any LCD-driver as they serve purposes
that can be found in any class of LCD-driver.
*/

#if (!LCD_SWAP_XY) && (!LCD_MIRROR_X) && (!LCD_MIRROR_Y)
  #define LOG2PHYS(x,y) x,y
#elif (!LCD_SWAP_XY) && (!LCD_MIRROR_X) && (LCD_MIRROR_Y)
  #define LOG2PHYS(x,y) x,LCD_YSIZE_PHYS-1-(y)
#elif (!LCD_SWAP_XY) && (LCD_MIRROR_X) && (!LCD_MIRROR_Y)
  #define LOG2PHYS(x,y) LCD_XSIZE_PHYS-1-(x),y
#elif (!LCD_SWAP_XY) && (LCD_MIRROR_X) && (LCD_MIRROR_Y)
  #define LOG2PHYS(x,y) LCD_XSIZE_PHYS-1-(x),LCD_YSIZE_PHYS-1-(y)
#elif (LCD_SWAP_XY) && (!LCD_MIRROR_X) && (!LCD_MIRROR_Y)
  #define LOG2PHYS(x,y) y,x
#elif (LCD_SWAP_XY) && (LCD_MIRROR_X) && (!LCD_MIRROR_Y)
  #define LOG2PHYS(x,y) y,LCD_XSIZE-1-(x)
#elif (LCD_SWAP_XY) && (!LCD_MIRROR_X) && (LCD_MIRROR_Y)
  #define LOG2PHYS(x,y) LCD_YSIZE-1-(y),x
#elif (LCD_SWAP_XY) && (LCD_MIRROR_X) && (LCD_MIRROR_Y)
  #define LOG2PHYS(x,y) LCD_YSIZE-1-(y),LCD_XSIZE-1-(x)
#else
  #error unsupported configuration
#endif

/*
        *********************************************************
        *                                                       *
        *       Macros for internal use                         *
        *                                                       *
        *********************************************************
*/

#if (LCD_SUPPORT_COMTRANS)
  #if (LCD_MIRROR_Y)
    #error LCD_MIRROR_Y not supported with COMTrans !
  #endif
  #if (LCD_MIRROR_X)
    #error LCD_MIRROR_X not supported with COMTrans !
  #endif
#endif

#define XORPIXEL_DATA(x, y,c)  XorPixel_Data(x,y,c)

#if (!LCD_SUPPORT_COMTRANS && !LCD_SUPPORT_SEGTRANS)
  #define SETPIXEL(x, y, c)  _SetPixel(x, y, c)
  #define GETPIXEL(x, y)     _GetPixel(x,y)
  #define XORPIXEL(x, y)     XorPixel(x,y)
  #define XORPIXEL_DATA(x, y,c)  XorPixel_Data(x,y,c)
#elif (LCD_SUPPORT_COMTRANS && !LCD_SUPPORT_SEGTRANS)
  #if (!LCD_SWAP_XY)
    #define SETPIXEL(x, y, c)  _SetPixel(x,LCD__aLine2Com0[y], c)
    #define GETPIXEL(x, y)     _GetPixel(x,LCD__aLine2Com0[y])
    #define XORPIXEL(x, y)      XorPixel(x,LCD__aLine2Com0[y])
  #else
    #define SETPIXEL(x, y, c)  _SetPixel(y,LCD__aLine2Com0[x], c)
    #define GETPIXEL(x, y)     _GetPixel(y,LCD__aLine2Com0[x])
    #define XORPIXEL(x, y)      XorPixel(y,LCD__aLine2Com0[x])
  #endif
#elif (!LCD_SUPPORT_COMTRANS && LCD_SUPPORT_SEGTRANS)
  #if (!LCD_SWAP_XY)
    #define SETPIXEL(x, y, c)  _SetPixel(LCD__aRow2Seg0[x],y, c)
    #define GETPIXEL(x, y)     _GetPixel(LCD__aRow2Seg0[x],y)
    #define XORPIXEL(x, y)      XorPixel(LCD__aRow2Seg0[x],y)
  #else
    #define SETPIXEL(x, y, c)  _SetPixel(LCD__aRow2Seg0[y],x, c)
    #define GETPIXEL(x, y)     _GetPixel(LCD__aRow2Seg0[y],x)
    #define XORPIXEL(x, y)      XorPixel(LCD__aRow2Seg0[y],x)
  #endif
#elif (LCD_SUPPORT_COMTRANS && LCD_SUPPORT_SEGTRANS)
  #if (!LCD_SWAP_XY)
    #define SETPIXEL(x, y, c)  _SetPixel(LCD__aRow2Seg0[x],LCD__aLine2Com0[y], c)
    #define GETPIXEL(x, y)     _GetPixel(LCD__aRow2Seg0[x],LCD__aLine2Com0[y])
    #define XORPIXEL(x, y)      XorPixel(LCD__aRow2Seg0[x],LCD__aLine2Com0[y])
  #else

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品一区四区| 国产精品国产三级国产三级人妇| 欧美一区二区三区爱爱| 久久网站热最新地址| 一级特黄大欧美久久久| 国产精品一区免费视频| 在线播放中文字幕一区| 国产精品美女www爽爽爽| 美女性感视频久久| 欧美色图在线观看| 亚洲国产岛国毛片在线| 狠狠色伊人亚洲综合成人| 欧洲精品一区二区| 综合久久综合久久| 懂色av中文字幕一区二区三区| 欧美一级生活片| 亚洲成a天堂v人片| 日本高清不卡在线观看| 亚洲视频小说图片| 国产成人在线视频网址| 欧美一区二区三区四区视频| 亚洲一区日韩精品中文字幕| 色综合中文字幕国产 | 最新久久zyz资源站| 久久99国产精品久久99| 9191精品国产综合久久久久久| 亚洲日本在线天堂| 国内成人免费视频| 337p日本欧洲亚洲大胆色噜噜| 久久精品国产精品亚洲精品| 日韩一级大片在线| 亚洲韩国一区二区三区| 在线观看日韩精品| 亚洲国产乱码最新视频| 欧美日韩一区高清| 日本伊人色综合网| 日韩欧美电影一区| 久久电影网电视剧免费观看| 久久这里只精品最新地址| 国产成人啪免费观看软件| 中文字幕免费观看一区| 97久久精品人人做人人爽50路 | 欧美日韩国产首页| 亚洲v精品v日韩v欧美v专区| 在线播放91灌醉迷j高跟美女 | 成人视屏免费看| 国产精品久久毛片a| 99这里只有久久精品视频| 亚洲已满18点击进入久久| 欧美精品乱码久久久久久 | 亚洲免费在线看| 91丝袜美腿高跟国产极品老师 | 国产精品伦一区二区三级视频| 成人av电影观看| 有码一区二区三区| 欧美一级精品在线| 国产成人精品免费在线| 亚洲午夜一区二区三区| 精品国精品国产尤物美女| 99久久久免费精品国产一区二区| 亚洲激情图片qvod| 精品久久久久久久一区二区蜜臀| 成人高清视频在线| 婷婷亚洲久悠悠色悠在线播放| 久久婷婷久久一区二区三区| 色吧成人激情小说| 国产一区二区不卡| 亚洲自拍偷拍欧美| 久久综合色天天久久综合图片| 99精品视频在线观看免费| 日本成人在线视频网站| 国产精品传媒入口麻豆| 欧美人体做爰大胆视频| 东方欧美亚洲色图在线| 视频在线观看一区| 国产精品久久久久影院| 欧美午夜精品电影| 国产99久久精品| 美女久久久精品| 亚洲视频在线观看三级| 26uuu精品一区二区| 欧美日韩国产高清一区二区三区| 国产成人av影院| 美女一区二区三区| 一区二区三区精品视频| 久久精品人人做人人综合| 欧美在线免费播放| 成人精品一区二区三区中文字幕| 老鸭窝一区二区久久精品| 亚洲午夜久久久久久久久电影网| 国产日产欧美一区| 日韩欧美一区在线| 欧美三级乱人伦电影| 99久久精品免费精品国产| 国产精品66部| 黑人巨大精品欧美黑白配亚洲| 天天影视涩香欲综合网 | 三级在线观看一区二区| 一区二区理论电影在线观看| 国产欧美精品一区二区色综合朱莉| 日韩欧美高清一区| 欧美一区二区在线观看| 欧美精品在线视频| 欧美日韩色综合| 欧美三区在线观看| 欧美性做爰猛烈叫床潮| 91福利小视频| 色婷婷久久久综合中文字幕| 91亚洲精品久久久蜜桃网站| 成人激情视频网站| 成年人网站91| 成人性生交大片免费看中文| 国产综合久久久久久鬼色 | 亚洲国产日韩一区二区| 亚洲综合小说图片| 亚洲国产乱码最新视频| 天堂资源在线中文精品| 午夜电影网一区| 轻轻草成人在线| 久久99国产乱子伦精品免费| 久久不见久久见中文字幕免费| 日韩电影免费在线看| 日韩av在线发布| 激情综合色综合久久| 国产精品一区二区视频| 成人伦理片在线| 欧洲一区二区三区免费视频| 欧美日韩成人在线| 日韩写真欧美这视频| 久久综合九色综合97婷婷女人| 国产欧美日本一区视频| 136国产福利精品导航| 亚洲综合精品久久| 麻豆精品久久久| 成人午夜碰碰视频| 欧美日韩一区小说| 精品福利av导航| 1区2区3区欧美| 亚洲国产精品久久人人爱| 久久精品国产99国产精品| 国产成人av一区二区| 在线看日本不卡| 欧美成人vps| 亚洲欧美日韩中文字幕一区二区三区| 一区二区三区不卡在线观看| 久久国产精品一区二区| a4yy欧美一区二区三区| 欧美日韩高清不卡| 国产欧美日韩另类一区| 亚洲一区二区在线观看视频| 精品一区在线看| 91视频91自| 精品成人私密视频| 亚洲无线码一区二区三区| 国产又粗又猛又爽又黄91精品| thepron国产精品| 日韩欧美视频一区| 亚洲美女偷拍久久| 精品综合久久久久久8888| 91久久久免费一区二区| 久久久精品2019中文字幕之3| 一区二区三区电影在线播| 国产精品66部| 日韩一区二区在线观看| 亚洲人成网站色在线观看| 久久机这里只有精品| 91福利视频久久久久| 中文字幕精品在线不卡| 日本欧美在线观看| 色综合久久66| 国产色综合久久| 免费成人在线观看| 91福利精品第一导航| 国产精品久久久久久久午夜片| 美女视频第一区二区三区免费观看网站| 99精品久久只有精品| 亚洲国产精品二十页| 国产精品一区二区x88av| 欧美一级夜夜爽| 视频一区视频二区在线观看| 日本黄色一区二区| 国产精品欧美精品| 国产一区二区三区四区五区入口| 欧美肥妇毛茸茸| 一区二区三区免费在线观看| 成人国产电影网| 国产欧美综合在线观看第十页 | 欧美成人综合网站| 蜜桃av一区二区三区电影| 欧美精品粉嫩高潮一区二区| 亚洲综合久久久| 欧美日韩国产首页| 午夜亚洲国产au精品一区二区| 欧美色综合网站| 亚洲成a人片在线不卡一二三区| 欧美色综合网站| 日本特黄久久久高潮| 欧美一区二区三区系列电影| 蜜臀国产一区二区三区在线播放| 欧美一级日韩免费不卡|