亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
福利一区在线观看| 在线视频综合导航| 色婷婷亚洲综合| 欧美一区二区三区影视| 国产精品黄色在线观看| 日韩国产欧美在线视频| 色综合久久天天| 国产日韩综合av| 美女久久久精品| 欧美三级三级三级爽爽爽| 国产精品久久毛片a| 国产精品资源在线观看| 欧美一级午夜免费电影| 亚洲成人av中文| 一本一道久久a久久精品综合蜜臀| 久久精子c满五个校花| 免费国产亚洲视频| 7777精品伊人久久久大香线蕉完整版 | 成年人网站91| 久久综合久久鬼色中文字| 免费黄网站欧美| 91精品国产入口| 日韩电影在线观看电影| 欧美日韩免费在线视频| 亚洲一区二区三区四区中文字幕| 91亚洲精品乱码久久久久久蜜桃| 国产女人18毛片水真多成人如厕 | 亚洲成人免费影院| 在线精品国精品国产尤物884a| 一区在线中文字幕| 波多野结衣的一区二区三区| 国产欧美精品国产国产专区| 国产v日产∨综合v精品视频| 久久久久国产成人精品亚洲午夜| 久久99久国产精品黄毛片色诱| 欧美精品乱码久久久久久| 天堂精品中文字幕在线| 9191国产精品| 久久9热精品视频| 亚洲精品在线观看网站| 国产精品一级片| 亚洲日本在线视频观看| 色嗨嗨av一区二区三区| 亚洲成人动漫在线免费观看| 91精品国产综合久久久蜜臀图片 | 欧美精品一区二区在线播放| 国产中文字幕精品| 国产精品电影一区二区| 99国产精品久久久久| 亚洲主播在线播放| 日韩一区二区三区电影| 国产一区二区三区观看| 国产精品免费视频网站| 色嗨嗨av一区二区三区| 欧美aaa在线| 国产日韩欧美一区二区三区乱码| 成人高清视频在线| 午夜精品一区二区三区免费视频| 日韩免费一区二区三区在线播放| 国产成人精品免费网站| 亚洲欧美日韩国产综合在线| 欧美高清视频一二三区| 国产成人免费9x9x人网站视频| 亚洲人成亚洲人成在线观看图片| 91精品视频网| 成人久久18免费网站麻豆| 亚洲电影中文字幕在线观看| 日韩你懂的在线播放| 色综合久久88色综合天天| 蜜桃视频在线观看一区| 亚洲天堂免费看| 精品国产乱码久久久久久1区2区| 不卡一二三区首页| 日韩精品一级二级| 中文字幕欧美一区| 久久夜色精品国产噜噜av | 欧美放荡的少妇| 成人性生交大合| 美女诱惑一区二区| 夜夜嗨av一区二区三区四季av| 精品国产1区二区| 欧美视频你懂的| 懂色av噜噜一区二区三区av| 日韩国产欧美三级| 亚洲在线中文字幕| 中文av一区二区| 精品国产凹凸成av人导航| 欧美亚洲愉拍一区二区| www.亚洲在线| 国产精品综合二区| 久久精品国产免费| 日韩电影在线观看一区| 亚洲午夜电影在线观看| 成人欧美一区二区三区视频网页| 久久综合中文字幕| 日韩限制级电影在线观看| 欧美亚州韩日在线看免费版国语版| 不卡一区二区在线| 成人国产精品免费观看动漫 | 午夜成人在线视频| 亚洲激情校园春色| 亚洲欧美日韩在线| 国产精品嫩草99a| 久久视频一区二区| 久久久三级国产网站| 欧美大胆人体bbbb| 欧美成人福利视频| 日韩欧美一区二区视频| 欧美一区二区三区四区高清| 欧美精品久久一区| 欧美日本视频在线| 欧美精品电影在线播放| 欧美乱妇15p| 日韩午夜在线影院| 精品精品欲导航| 欧美mv和日韩mv的网站| 日韩精品一区二区三区四区| 日韩精品在线一区二区| 久久色在线观看| 亚洲综合色噜噜狠狠| 亚洲一区二区三区爽爽爽爽爽| 一区二区高清在线| 亚洲国产日韩a在线播放性色| 亚洲综合自拍偷拍| 日韩在线一区二区| 精品在线观看视频| 粉嫩一区二区三区在线看| 成人免费观看视频| 日本精品一级二级| 在线播放一区二区三区| 久久亚区不卡日本| 中文字幕中文字幕一区二区| 亚洲美女在线一区| 日韩av一区二区三区四区| 久久99国产精品久久99 | 欧美亚洲丝袜传媒另类| 69av一区二区三区| 2023国产精品视频| 日韩一区在线免费观看| 亚洲成av人在线观看| 久久国产精品露脸对白| 不卡av电影在线播放| 欧美影院一区二区| 精品嫩草影院久久| 亚洲人成影院在线观看| 日本欧美韩国一区三区| 国产成人在线电影| 欧美三级电影网| 国产午夜亚洲精品不卡| 一区二区三区国产精华| 狠狠色狠狠色综合| 一本色道亚洲精品aⅴ| 欧美大片免费久久精品三p| 亚洲美女免费在线| 韩日av一区二区| 精品污污网站免费看| 国产亚洲精久久久久久| 午夜精品在线看| 91丨国产丨九色丨pron| 日韩欧美在线1卡| 亚洲精品写真福利| 国产黄人亚洲片| 6080日韩午夜伦伦午夜伦| 中文字幕av一区 二区| 日韩精品国产精品| 色综合色综合色综合色综合色综合 | 91精品国产色综合久久ai换脸| 日本一区二区三区视频视频| 石原莉奈在线亚洲三区| 97aⅴ精品视频一二三区| 精品久久久久久久久久久久包黑料| 亚洲精品你懂的| 福利一区二区在线| 日韩欧美一区二区不卡| 一区二区不卡在线播放| 成人免费高清在线| 久久综合久久综合久久| 免费成人深夜小野草| 欧美性视频一区二区三区| 国产精品欧美久久久久一区二区| 久久黄色级2电影| 欧美日韩1234| 亚洲成人免费电影| 色一情一伦一子一伦一区| 中文字幕中文字幕在线一区 | 26uuu国产电影一区二区| 婷婷激情综合网| 在线观看三级视频欧美| 亚洲精品中文在线| 99re成人在线| 国产精品美女久久久久av爽李琼 | 久久精品国产999大香线蕉| 欧美午夜精品理论片a级按摩| 日韩理论电影院| 99re这里只有精品视频首页| 国产精品国产三级国产三级人妇 | 国产精品一卡二卡在线观看| 久久影院视频免费| 国产精品一二三在| 欧美激情一区不卡|