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

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

?? lcd07x1.c

?? 一個非常難得的ucos嵌入式液晶驅動源程序
?? 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一区二区三区免费野_久草精品视频
免费不卡在线视频| 色综合天天综合在线视频| 国产成人综合网站| 欧美影院午夜播放| 国产欧美日韩一区二区三区在线观看| 一区二区三区四区在线| 国产美女视频一区| 欧美日韩在线免费视频| 中文字幕永久在线不卡| 韩国欧美国产1区| 欧美老年两性高潮| 国产精品萝li| 国产成人aaaa| 精品久久久久久久久久久久久久久 | 香蕉av福利精品导航| 国产精品一二三在| 欧美一区二区在线观看| 亚洲小少妇裸体bbw| 成人听书哪个软件好| 欧美一区二区三区成人| 亚洲国产你懂的| 在线视频国内自拍亚洲视频| 国产精品免费久久久久| 丰满岳乱妇一区二区三区| 久久久三级国产网站| 精久久久久久久久久久| 欧美v亚洲v综合ⅴ国产v| 蜜桃视频第一区免费观看| 欧美精品第1页| 亚洲成人在线观看视频| 欧美丝袜第三区| 香蕉加勒比综合久久| 欧美性生交片4| 亚洲成人免费观看| 欧美精品在线一区二区三区| 亚洲第一主播视频| 欧美精品一级二级三级| 日韩成人午夜电影| 欧美一区二区三区公司| 久久er99精品| 久久久精品影视| 成人国产精品免费| 亚洲伦理在线免费看| 91麻豆精品一区二区三区| 亚洲欧美福利一区二区| 欧美亚洲国产一区二区三区va| 亚洲丰满少妇videoshd| 日韩一区二区麻豆国产| 国产九色sp调教91| 国产精品国产三级国产普通话三级 | 久久久久久久久岛国免费| 粉嫩嫩av羞羞动漫久久久| 亚洲欧洲精品天堂一级| 欧美在线观看视频一区二区| 高清不卡在线观看| 国产精品久久久久一区| 色综合久久久久综合体桃花网| 亚洲成人你懂的| 26uuu国产电影一区二区| 成人深夜福利app| 亚洲一区中文日韩| 欧美一二三区在线观看| 国产999精品久久久久久绿帽| 欧美三级资源在线| 国产二区国产一区在线观看| 欧美人妖巨大在线| 久久精品一区蜜桃臀影院| aaa欧美色吧激情视频| 亚洲成人黄色小说| 精品国产一区二区亚洲人成毛片| 国产成人综合亚洲91猫咪| 亚洲成a人v欧美综合天堂下载 | 亚洲伊人伊色伊影伊综合网 | 色欧美乱欧美15图片| 麻豆一区二区在线| 日韩毛片一二三区| 欧美大片免费久久精品三p| www.亚洲激情.com| 美女视频黄 久久| 亚洲欧美日韩精品久久久久| 日韩一级片在线播放| 97se亚洲国产综合自在线观| 免费三级欧美电影| 一区二区三区视频在线看| 久久婷婷色综合| 欧美日本韩国一区二区三区视频| 成人免费黄色在线| 九一久久久久久| 伊人开心综合网| 中文字幕久久午夜不卡| 91精品国产一区二区三区香蕉| 91亚洲精品久久久蜜桃网站| 久久99精品国产麻豆不卡| 亚洲午夜在线电影| 亚洲另类在线视频| 中文字幕亚洲成人| 久久久蜜臀国产一区二区| 91精品福利在线一区二区三区| 色综合久久久网| 91在线精品秘密一区二区| 国产不卡在线一区| 国产精品一区一区三区| 久久99久久久久久久久久久| 偷拍与自拍一区| 一区二区三区在线高清| 亚洲激情av在线| 国产精品国产馆在线真实露脸 | 欧美日韩国产天堂| 色婷婷av一区二区三区软件| 91视频免费观看| 国产宾馆实践打屁股91| 国产精品白丝av| 国产91露脸合集magnet| 国产v日产∨综合v精品视频| 懂色中文一区二区在线播放| 国产91丝袜在线播放九色| 国产精品一二一区| 粉嫩一区二区三区在线看| 国产成人精品亚洲777人妖| 国产99久久久国产精品潘金| 国产精品自拍三区| 精品欧美一区二区久久| 欧美一区二区精品| 欧美电视剧在线看免费| 国产亚洲欧美色| 亚洲欧洲av另类| 亚洲女性喷水在线观看一区| 一区二区成人在线视频 | 欧洲亚洲国产日韩| 在线成人av影院| 精品三级av在线| 久久人人97超碰com| 欧美经典三级视频一区二区三区| 国产精品九色蝌蚪自拍| 亚洲综合视频网| 麻豆一区二区三区| 成人精品视频一区二区三区 | 粉嫩aⅴ一区二区三区四区| 成人精品在线视频观看| 91黄色免费网站| 欧美一级高清片在线观看| 国产亚洲一区二区三区| 亚洲视频在线观看一区| 婷婷丁香激情综合| 国产精品白丝jk黑袜喷水| 色八戒一区二区三区| 欧美一区二区三区四区久久| 久久久不卡网国产精品一区| 亚洲男人的天堂在线观看| 蜜桃av一区二区在线观看| 国产不卡在线视频| 欧美日韩精品一区二区| 久久久久九九视频| 亚洲乱码国产乱码精品精小说 | 91精品国产欧美一区二区18| 26uuu国产一区二区三区| 亚洲乱码一区二区三区在线观看| 日本成人在线一区| 99精品欧美一区二区蜜桃免费 | 欧美在线观看视频一区二区三区| 精品国产制服丝袜高跟| 亚洲综合一区在线| 福利一区二区在线| 日韩一区二区视频在线观看| 中文字幕一区二区视频| 久久av资源网| 欧美人体做爰大胆视频| 成人免费在线观看入口| 九色综合狠狠综合久久| 欧美日韩一卡二卡三卡| 中文字幕第一区二区| 九九精品一区二区| 欧美三级午夜理伦三级中视频| 国产蜜臀97一区二区三区| 免费观看在线综合色| 欧美日韩亚州综合| 亚洲精品综合在线| av高清不卡在线| 久久亚洲精品国产精品紫薇| 视频一区二区国产| 91福利在线免费观看| 亚洲图片激情小说| 成人网在线免费视频| 久久久久久97三级| 极品少妇一区二区三区精品视频| 欧美日韩三级一区| 亚洲最大成人网4388xx| 99久久99久久久精品齐齐| 国产精品理论在线观看| 国产露脸91国语对白| 欧美精品一区二区高清在线观看| 免费成人在线观看| 日韩美女视频一区| 91香蕉视频污在线| 亚洲视频中文字幕| 日本高清不卡aⅴ免费网站| 亚洲靠逼com| 在线视频一区二区三| 一区二区理论电影在线观看| 在线观看91视频|