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

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

?? lcd07x1.c

?? 這是我移植到GBA游戲機上的uCGUI3.24 可以通過模擬器仿真
?? 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        : LCD07X1.c
Purpose     : Driver for LCDs using K70741 controllers or compatible.
----------------------------------------------------------------------
Version-Date---Author-Explanation
----------------------------------------------------------------------
2.00c   020708 JE     a) Changed to work with 2bpp DDP bitmaps
2.00b   020204 JE     a) Hardwareinterface routines renamed:
                         ...DATA -> ...A1, ...CMD -> ...A0
2.00a   010924 JE     a) Bugfixes: LCD_MIRROR_X, LCD_MIRROR_Y
2.00    010402 RS     a) LCD_GetDevCaps removed from driver
                         (now LCD.c)
1.04    000925 RS     a) Support for 8bpp DDBs added
1.03    000505 JE     a) XOR mode inserted
                      b) Renamed this file from LCD0711.C -> LCD07X1.C
1.02    000329 RS     Clean up
1.01    000329 RS     Cache flushing optimized
1.00    000329 RS     First official release. Most routine are
                      optimized, cache control added.
0.00    990118 EZ/RS  First release for Motorola Israel only,
                      not configuarable, not optimized.
---------------------------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.
----------------------------------------------------------------------
Known problems or limitations with current version
----------------------------------------------------------------------
a) LCD_MIRROR_X,Y can not be used together with LCD_SWAP_XY
---------------------------END-OF-HEADER------------------------------
*/


#include <stddef.h>           /* needed for definition of NULL */
#include <string.h> /* memset & memcpy is used in driver! */
#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 == 711)|(LCD_CONTROLLER == 741)) \
      && (!defined(WIN32) | defined(LCD_SIMCONTROLLER))



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

*/

#ifndef LCD_STATIC
  #define LCD_STATIC static
#endif

#ifndef LCD_WATCHDOG_TRIGGERCNT
  #define LCD_WATCHDOG_TRIGGERCNT 0
#endif

#ifndef LCD_KICK_WATCHDOG
  #define LCD_KICK_WATCHDOG()
#endif

#ifndef LCD_NUM_EMPTY_LINES
  #define LCD_NUM_EMPTY_LINES           (0)
#endif

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

#ifndef LCD_LASTSEG0
  #if (!LCD_SWAP_XY)
    #define LCD_LASTSEG0    (LCD_XSIZE-1)    /* Contr.0: last segment line used */
  #else
    #define LCD_LASTSEG0    (LCD_YSIZE-1)
  #endif
#endif

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

#ifndef LCD_LASTCOM0
  #if (!LCD_SWAP_XY)
    #define LCD_LASTCOM0    (LCD_YSIZE-1)     /* Contr.0: last com line used */
  #else
    #define LCD_LASTCOM0    (LCD_XSIZE-1)     /* Contr.0: last com line used */
  #endif
#endif

#ifndef LCD_CACHE
  #define  LCD_CACHE                    (1)
#endif

#ifndef LCD_SUPPORT_REFRESH
  #define  LCD_SUPPORT_REFRESH LCD_CACHE
#endif

#ifndef LCD_REVERSEMODE_SUPPORT
  #define LCD_REVERSEMODE_SUPPORT       (0)
#endif

#ifndef LCD_SUPPORT_VERIFY
  #define LCD_SUPPORT_VERIFY            (0)
#endif


/* Switch for support of cache control (locking) */
#ifndef  LCD_SUPPORT_CACHECONTROL
  #define  LCD_SUPPORT_CACHECONTROL     LCD_CACHE
#endif

/* If disabled, selected drawmode is ignored.
   ==> XOR, REVERSE drawing not supported */
#ifndef LCD_SUPPORT_DRAWMODE
  #define LCD_SUPPORT_DRAWMODE          (1)
#endif

/* Switch for support of multiple pages.
 Only available with certain LCD-controllers */
#ifndef LCD_SUPPORT_PAGING
  #define LCD_SUPPORT_PAGING            (0)
#endif

#ifndef LCD_SCHEDULE_CNT
  #define LCD_SCHEDULE_CNT              (0)
#endif

#ifndef LCD_NUM_CONTROLLERS
  #define LCD_NUM_CONTROLLERS           (1)
#endif

#ifndef LCD_SUPPORT_CHECKINIT
  #define LCD_SUPPORT_CHECKINIT         (0)
#endif

#ifndef LCD_BUSWIDTH
  #define LCD_BUSWIDTH                  (16)
#endif

/* Bit position of least sig. byte when accessing words */
#ifndef LCD_LSB_SHIFT
  #define LCD_LSB_SHIFT                 (0)
#endif

#ifndef LCD_OPTIMIZE
  #define LCD_OPTIMIZE                (1)
#endif

/*
        *********************************************************
        *                                                       *
        *              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 (Like clipping).

*/

#define BKCOLOR LCD_BKCOLORINDEX
#define   COLOR LCD_COLORINDEX
#define LCD_DrawMode GUI_Context.DrawMode

/*
        *********************************************************
        *                                                       *
        *           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
  #undef LCD_WRITE_A0
  #undef LCD_WRITE_A1
  #undef LCD_WRITEM_A1
  #undef LCD_INIT_CONTROLLER
  void SIM_WriteA1C0(U8 Data);
  void SIM_WriteA0C0(U8 cmd);
  void SIM_WriteMA1C0(U8*pData, int NumBytes);
  #define LCD_WRITE_A0(cmd)              SIM_WriteA0C0(cmd)
  #define LCD_WRITE_A1(Data)             SIM_WriteA1C0(Data) 
  #define LCD_WRITEM_A1(Data, NumBytes)  SIM_WriteMA1C0(Data, NumBytes)
  #define LCD_INIT_CONTROLLER()
#endif

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

#define LCD_WRITEDATA1 LCD_WRITE_A1
#define LCD_WRITEMDATA LCD_WRITEM_A1
#define LCD_WRITECMD   LCD_WRITE_A0

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

/* Define number of available segments of controller */

#if (LCD_CONTROLLER == 711)
  #define LCD_SEGS_MAX  128
  #define LCD_COMS_MAX 64
#elif (LCD_CONTROLLER == 741)
  #define LCD_SEGS_MAX  128
  #define LCD_COMS_MAX  128
#else
  #error Please define a controller to use !
#endif


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

#if LCD_BITSPERPIXEL <=8
  #define PIXELCOLOR U8
#elif (LCD_BITSPERPIXEL >8) && (LCD_BITSPERPIXEL < 16)
  #define PIXELCOLOR U16
#else
  #error LCD_BITSPERPIXEL > 16 not supported
#endif


/*
        *********************************************************
        *                                                       *
        *          SCHEDULING                                   *
        *                                                       *
        *********************************************************
*/

#if (LCD_SCHEDULE_CNT !=0)
  static int ScheduleCntRem=LCD_SCHEDULE_CNT;
  #define CHECK_SCHEDULE(PixelCnt)                              \
          if ((ScheduleCntRem-=(PixelCnt)) <=0) {               \
            ScheduleCntRem=LCD_SCHEDULE_CNT;                    \
            LCD_SCHEDULE();                                     \
          }
#else
  #define CHECK_SCHEDULE(PixelCnt)
#endif


/*
        *********************************************************
        *                                                       *
        *          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


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

#define LCD_MSB_SHIFT       (8-LCD_LSB_SHIFT)

/* To make life easier, assign physical x/y size */
#if !LCD_SWAP_XY
  #define LCD_XSIZE_P LCD_XSIZE
  #define LCD_YSIZE_P LCD_YSIZE
  #define LCD_VXSIZE_P LCD_VXSIZE
  #define LCD_VYSIZE_P LCD_VYSIZE
#else
  #define LCD_XSIZE_P LCD_YSIZE
  #define LCD_YSIZE_P LCD_XSIZE
  #define LCD_VXSIZE_P LCD_VYSIZE
  #define LCD_VYSIZE_P LCD_VXSIZE
#endif

/* 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))

#if     LCD_BITSPERPIXEL == 2              /* Add by ELIZ 19 Jan 00 */
  #define BYTESPERLINE (LCD_VXSIZE_P/4)    /* Add by ELIZ 19 Jan 00 */
  #define WORDSPERLINE (LCD_VXSIZE_P/8)    /* Add by ELIZ 19 Jan 00 */
#elif   LCD_BITSPERPIXEL == 4
  #define BYTESPERLINE (LCD_VXSIZE_P/2)
  #define WORDSPERLINE (LCD_VXSIZE_P/4)
#elif LCD_BITSPERPIXEL == 8
  #define BYTESPERLINE (LCD_VXSIZE_P)
  #define WORDSPERLINE (LCD_VXSIZE_P/2)
#elif LCD_BITSPERPIXEL == 15
  #define BYTESPERLINE (LCD_VXSIZE_P*2)
  #define WORDSPERLINE (LCD_VXSIZE_P)
#else
  #error This colordepth is not supported !!!
#endif

#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

/* Check if number of segments / coms equals resolution */
#if (LCD_NUM_SEGS < LCD_XSIZE_P)
/*  #error Please check segment setup of controller 0 and X/YSIZE !!!*/
#endif
#if (LCD_NUM_COMS < LCD_YSIZE_P)
/*  #error Please check com setup of controller 0 and X/YSIZE !!!*/
#endif


/*
        *********************************************************
        *                                                       *
        * Standard variables for driver                         *
        *                                                       *
        *********************************************************
*/

static char CacheLocked =0;
static char CacheStat   =0;
static U8 Cache[LCD_NUM_PAGES][LCD_XSIZE_P][2];
static U8 aCacheDirty[LCD_NUM_PAGES];

#if LCD_WATCHDOG_TRIGGERCNT
  int WatchdogTriggerCnt;
#endif

#if LCD_SUPPORT_VERIFY
  static int ErrCnt;
  static int ErrStat;
#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

#if (!LCD_SUPPORT_COMTRANS && !LCD_SUPPORT_SEGTRANS)
  #if   (!LCD_MIRROR_X && !LCD_MIRROR_Y && !LCD_SWAP_XY) 
    #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_MIRROR_X && !LCD_MIRROR_Y &&  LCD_SWAP_XY) 
    #define SETPIXEL(x, y, c)  _SetPixel(y, x, c)
    #define GETPIXEL(x, y)     _GetPixel(y, x)
    #define XORPIXEL(x, y)      XorPixel(y, x)
    #define XORPIXEL_DATA(x, y,c)  XorPixel_Data(y,x,c)
  #elif (!LCD_MIRROR_X &&  LCD_MIRROR_Y && !LCD_SWAP_XY) 
    #define SETPIXEL(x, y, c)  _SetPixel(x, LCD_YSIZE-1-(y), c)
    #define GETPIXEL(x, y)     _GetPixel(x, LCD_YSIZE-1-(y))
    #define XORPIXEL(x, y)     XorPixel (x, LCD_YSIZE-1-(y))
    #define XORPIXEL_DATA(x, y,c)  XorPixel_Data(x,LCD_YSIZE-1-(y),c)
  #elif (!LCD_MIRROR_X &&  LCD_MIRROR_Y &&  LCD_SWAP_XY) 
    #define SETPIXEL(x, y, c)  _SetPixel(LCD_YSIZE-1-(y), x, c)
    #define GETPIXEL(x, y)     _GetPixel(LCD_YSIZE-1-(y), x)
    #define XORPIXEL(x, y)      XorPixel(LCD_YSIZE-1-(y), x)
    #define XORPIXEL_DATA(x, y,c)  XorPixel_Data(LCD_YSIZE-1-(y),x,c)
  #elif ( LCD_MIRROR_X && !LCD_MIRROR_Y && !LCD_SWAP_XY) 
    #define SETPIXEL(x, y, c)  _SetPixel(LCD_XSIZE-1-(x), y, c)
    #define GETPIXEL(x, y)     _GetPixel(LCD_XSIZE-1-(x), y)
    #define XORPIXEL(x, y)     XorPixel (LCD_XSIZE-1-(x), y)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品一二三在| 91精品久久久久久久91蜜桃 | 中文字幕不卡在线观看| 国产精品的网站| 毛片av中文字幕一区二区| 成人aaaa免费全部观看| 91麻豆精品国产91久久久资源速度| 精品1区2区在线观看| 亚洲午夜视频在线| 99视频有精品| 国产拍欧美日韩视频二区| 亚洲成人av电影| 91免费观看在线| 国产日韩影视精品| 精品在线亚洲视频| 欧美日韩一二三区| 亚洲欧美另类综合偷拍| 国产精品538一区二区在线| 欧美高清视频一二三区| 一区二区不卡在线播放 | 偷拍亚洲欧洲综合| av综合在线播放| 日本一区二区三区电影| 精品一区二区三区在线视频| 欧美日本国产视频| 亚洲专区一二三| 一道本成人在线| 亚洲男人天堂av网| 91蝌蚪porny| 亚洲欧美福利一区二区| 成人av电影在线网| 中文字幕制服丝袜成人av| 国产精品99久久久久久有的能看| 精品国产自在久精品国产| 免费看黄色91| 日韩欧美中文一区| 久久99这里只有精品| 精品国精品国产尤物美女| 国内成人自拍视频| 日本一区二区三区四区| 成人国产电影网| 亚洲日本va午夜在线影院| 91女厕偷拍女厕偷拍高清| 亚洲精品免费一二三区| 在线观看91视频| 日韩综合小视频| 91麻豆精品国产91久久久久久久久 | 精品一区二区三区蜜桃| 精品国产一区二区三区久久影院 | 91麻豆精品国产| 蜜臀va亚洲va欧美va天堂 | 欧美二区三区91| 蜜桃一区二区三区四区| 久久久久九九视频| 99re这里只有精品首页| 亚洲欧美日韩一区二区| 欧美美女一区二区| 国内精品久久久久影院一蜜桃| 国产欧美一区二区精品仙草咪| 成人蜜臀av电影| 一区二区三区在线免费视频 | 久久久噜噜噜久噜久久综合| 国产成人精品网址| 一区二区免费看| 欧美二区在线观看| 成人aaaa免费全部观看| 日本不卡一二三| 日本一区二区三区高清不卡| 欧美在线观看你懂的| 国产在线精品不卡| 亚洲在线视频一区| 久久久影视传媒| 日本伦理一区二区| 黄网站免费久久| 亚洲一二三四区| 久久先锋资源网| 在线免费亚洲电影| 国产乱人伦偷精品视频免下载| 亚洲欧美乱综合| 久久一区二区三区四区| 在线观看日产精品| 另类小说一区二区三区| 91精品1区2区| 国产大陆精品国产| 五月激情六月综合| 久久精品在线观看| 9191精品国产综合久久久久久| 成人久久视频在线观看| 久久精品999| 亚洲午夜av在线| 国产精品妹子av| 精品国产123| 欧美群妇大交群中文字幕| 91香蕉国产在线观看软件| 国产曰批免费观看久久久| 日韩精品久久理论片| 亚洲一区日韩精品中文字幕| 国产婷婷一区二区| 欧美mv和日韩mv的网站| 欧美福利电影网| 欧美系列日韩一区| 色综合欧美在线视频区| 成人综合日日夜夜| 国产精品一区二区在线播放 | 亚洲美女视频在线| 国产人成一区二区三区影院| 日韩你懂的在线观看| 欧美精品在线观看一区二区| 一本色道久久加勒比精品| 成人av免费在线播放| 国产成人免费视频精品含羞草妖精 | 亚洲美女屁股眼交| 成人免费小视频| 亚洲欧洲精品天堂一级| 国产欧美一区二区三区沐欲| 国产欧美日本一区视频| 国产亚洲精品久| 国产三级一区二区三区| 国产欧美日韩综合精品一区二区| 久久综合久色欧美综合狠狠| 精品福利在线导航| 国产日韩欧美一区二区三区综合| 久久香蕉国产线看观看99| 久久综合狠狠综合| 久久久蜜桃精品| 国产精品免费视频网站| 亚洲情趣在线观看| 亚洲午夜激情av| 午夜精品成人在线视频| 热久久免费视频| 国产一区二区三区免费观看| 国产麻豆欧美日韩一区| 成人视屏免费看| 在线国产亚洲欧美| 5566中文字幕一区二区电影| 精品少妇一区二区三区日产乱码| 国产亚洲欧美日韩日本| 国产精品色噜噜| 亚洲成人午夜电影| 黄色小说综合网站| 99国产精品国产精品久久| 色哟哟精品一区| 日韩欧美不卡一区| 欧美国产精品一区二区| 亚洲精品伦理在线| 久久国产精品99久久久久久老狼| 国产成人精品www牛牛影视| 色综合色综合色综合色综合色综合| 欧美在线综合视频| 欧美成人精品高清在线播放 | 精品久久人人做人人爱| 国产精品二区一区二区aⅴ污介绍| 伊人婷婷欧美激情| 激情文学综合插| 欧洲一区二区三区在线| 欧美va在线播放| 亚洲欧美一区二区三区久本道91 | 亚洲美女在线一区| 蜜桃久久av一区| 在线免费观看日本一区| 久久婷婷国产综合精品青草| 亚洲精品乱码久久久久久黑人 | 久久这里只精品最新地址| 中文字幕一区二区三| 免费成人av资源网| 色婷婷综合久久久久中文一区二区| 日韩一区二区影院| 亚洲欧美一区二区三区极速播放| 久久精品72免费观看| 91麻豆福利精品推荐| 久久综合九色综合欧美98| 亚洲高清三级视频| youjizz国产精品| 日韩一区二区三区精品视频| 最好看的中文字幕久久| 狠狠色伊人亚洲综合成人| 欧美群妇大交群的观看方式| 亚洲欧美日本韩国| av中文字幕亚洲| 久久精品视频在线免费观看 | 国产电影精品久久禁18| 91精品久久久久久久99蜜桃| 亚洲综合在线五月| k8久久久一区二区三区| 国产亚洲欧美色| 国产一区二区三区黄视频| 欧美一区二区不卡视频| 亚洲成人激情自拍| 欧美三级视频在线观看| 亚洲欧美一区二区三区极速播放| 成人在线视频一区二区| 久久―日本道色综合久久| 日本欧美韩国一区三区| 5月丁香婷婷综合| 亚洲二区在线视频| 欧美午夜精品一区二区三区| 亚洲靠逼com| 91久久国产最好的精华液| 日韩毛片一二三区| 一本色道综合亚洲|