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

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? lcdmem.c

?? s3c44b0+ucgui+初始化的一個(gè)版本
?? C
?? 第 1 頁(yè) / 共 3 頁(yè)
字號(hào):
/*
*********************************************************************************************************
*                                                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        : LCDMem.C
Purpose     : Driver for LCDs using internal memory
----------------------------------------------------------------------
Version-Date---Author-Explanation
----------------------------------------------------------------------
2.00a   010926 JE     a) Reworked to work with LCD_MIRROR_...
                         and LCD_SWAP_XY
2.00    010402 RS     a) LCD_GetDevCaps removed from driver
                         (now LCD.c)
1.00.04 990930 RS     Prototyp changed for LCD_Init()
1.00.03 990927 RS     Config defaults added
1.00.02 990925 RS     Bugfix for transparent 4 color bitmaps
1.00.01 990920 RS     Bugfix for DrawHline
1.00    990823 RS     Xor accelerated.
0.00    990118 RS     First release. 
----------------------------------------------------------------------
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   == 0) && ((LCD_FIXEDPALETTE==2) | (LCD_FIXEDPALETTE==1)) ) \
      && (!defined(WIN32) | defined(LCD_SIMCONTROLLER))


#define LCD_BYTESPERLINE (((LCD_VXSIZE_PHYS)+7)/8)
				
#ifndef LCD_VRAMTYPE
  #define LCD_VRAMTYPE
#endif

#ifdef WIN32
  #undef LCD_VRAMTYPE
  #define LCD_VRAMTYPE
#endif

LCD_VRAMTYPE U8 LCD_VRam[LCD_BITSPERPIXEL][LCD_VYSIZE_PHYS * LCD_BYTESPERLINE];



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

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

*/
#ifndef LCD_NUM_EMPTY_LINES
  #define LCD_NUM_EMPTY_LINES 0
#endif
#ifndef LCD_REVERSEMODE_SUPPORT
  #define LCD_REVERSEMODE_SUPPORT (1)
#endif
#ifndef LCD_VERIFY
  #define LCD_VERIFY (0)
#endif

#ifndef LCD_REVERSEMODE_SUPPORT
  #define LCD_REVERSEMODE_SUPPORT (0)
#endif

#ifndef LCD_SUPPORT_VERIFY
  #define LCD_SUPPORT_VERIFY (0)
#endif

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

/* Switch support for the LCD_On, LCD_Off functions of the driver */
#ifndef  LCD_SUPPORT_ONOFF
  #define  LCD_SUPPORT_ONOFF            (1)
#endif

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

/* Switch for support of run-time inversion of display. */
#ifndef LCD_SUPPORT_REVERSEMODE
  #define LCD_SUPPORT_REVERSEMODE       (0)
#endif

/* Switch support for the LCD_SetOrg function of the driver */
#ifndef LCD_SUPPORT_SETORG
  #define LCD_SUPPORT_SETORG            (1)
#endif

#ifndef LCD_SUPPORT_PALETTE
  #define LCD_SUPPORT_PALETTE            (1)
#endif

#ifndef LCD_SCHEDULE_CNT
  #define LCD_SCHEDULE_CNT        (0)
#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

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

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


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

/* 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)
/* Define total number of used coms/segments */
#define LCD_NUM_SEGS LCD_NUM_SEGS0
#define LCD_NUM_COMS LCD_NUM_COMS0

#define LCD_MEMSIZE LCD_VXSIZE_PHYS*(LCD_VYSIZE_PHYS+LCD_NUM_EMPTY_LINES)

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

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

*/

#if (LCD_BITSPERPIXEL != 2) & (LCD_BITSPERPIXEL != 1)
  #error this value for LCD_BITSPERPIXEL not yet supported
#endif

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

/*
  ********************************************************************
  *                                                                  *
  *       EXPORTs for ISR                                            *
  *                                                                  *
  ********************************************************************
*/
#ifndef LCD_TIMERINIT1
  #define LCD_TIMERINIT1  1599
#endif
#ifndef LCD_TIMERINIT0
  #define LCD_TIMERINIT0  1065
#endif

U16 LCD__BitsPerPixel = LCD_BITSPERPIXEL;

LCD_VRAMTYPE U8 LCD_VRAMTYPE* LCD__apVRam[LCD_BITSPERPIXEL];

LCD_VRAMTYPE U16 LCD__aTimerReload[LCD_BITSPERPIXEL] = {
  LCD_TIMERINIT0
#if LCD_BITSPERPIXEL > 1
  ,LCD_TIMERINIT1
#endif
};

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

#define PIXELCOLOR U8

#define BKCOLOR LCD_BKCOLORINDEX
#define   COLOR LCD_COLORINDEX


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

/*
        *********************************************************
        *                                                       *
        *       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)      SETPIXELPHYS((x), (y), (c))
    #define SETPIXELFAST(x, y, c)  SETPIXELPHYS((x), (y), (c))
    #define GETPIXEL(x, y)         _GetPixel   ((x), (y))
    #define XORPIXEL(x, y)         XorPixel    ((x), (y))
  #elif (!LCD_MIRROR_X && !LCD_MIRROR_Y &&  LCD_SWAP_XY) 
    #define SETPIXEL(x, y, c)      SETPIXELPHYS((y), (x), (c))
    #define GETPIXEL(x, y)         _GetPixel   ((y), (x))
    #define XORPIXEL(x, y)         XorPixel    ((y), (x))
  #elif (!LCD_MIRROR_X &&  LCD_MIRROR_Y && !LCD_SWAP_XY) 
    #define SETPIXEL(x, y, c)      SETPIXELPHYS((x), (LCD_YSIZE-1-(y)), (c))
    #define SETPIXELFAST(x, y, c)  SETPIXELPHYS((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)))
  #elif (!LCD_MIRROR_X &&  LCD_MIRROR_Y &&  LCD_SWAP_XY) 
    #define SETPIXEL(x, y, c)      SETPIXELPHYS((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))
  #elif ( LCD_MIRROR_X && !LCD_MIRROR_Y && !LCD_SWAP_XY) 
    #define SETPIXEL(x, y, c)      SETPIXELPHYS((LCD_XSIZE-1-(x)), (y), (c))
    #define SETPIXELFAST(x, y, c)  SETPIXELPHYS((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))
  #elif ( LCD_MIRROR_X && !LCD_MIRROR_Y &&  LCD_SWAP_XY) 
    #define SETPIXEL(x, y, c)      SETPIXELPHYS((y), (LCD_XSIZE-1-(x)), (c))
    #define GETPIXEL(x, y)         _GetPixel   ((y), (LCD_XSIZE-1-(x)))
    #define XORPIXEL(x, y)         XorPixel    ((y), (LCD_XSIZE-1-(x)))
  #elif ( LCD_MIRROR_X &&  LCD_MIRROR_Y && !LCD_SWAP_XY) 
    #define SETPIXEL(x, y, c)      SETPIXELPHYS((LCD_XSIZE-1-(x)), (LCD_YSIZE-1-(y)), (c))
    #define SETPIXELFAST(x, y, c)  SETPIXELPHYS((LCD_XSIZE-1-(x)), (LCD_YSIZE-1-(y)), (c))
    #define GETPIXEL(x, y)         _GetPixel   ((LCD_XSIZE-1-(x)), (LCD_YSIZE-1-(y)))
    #define XORPIXEL(x, y)         XorPixel    ((LCD_XSIZE-1-(x)), (LCD_YSIZE-1-(y)))
  #elif ( LCD_MIRROR_X &&  LCD_MIRROR_Y &&  LCD_SWAP_XY) 
    #error This combination of mirroring/swapping not yet supported
  #endif
#elif (LCD_SUPPORT_COMTRANS && !LCD_SUPPORT_SEGTRANS)
  #if (!LCD_SWAP_XY)
    #define SETPIXEL(x, y, c)      SetPixelPhys(x,LCD__aLine2Com0[y], c)
    #define SETPIXELFAST(x, y, c)  SETPIXELPHYS(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)      SetPixelPhys(y,LCD__aLine2Com0[x], c)
    #define SETPIXELFAST(x, y, c)  SETPIXELPHYS(y,LCD__aLine2Com0[x], c)
    #define GETPIXEL(x, y)     _GetPixel(y,LCD__aLine2Com0[x])
    #define XORPIXEL(x, y)      XorPixel(y,LCD__aLine2Com0[x])
  #endif
#else
  #error This combination of switches not yet supported
#endif




/*
        *********************************************************
        *                                                       *
        *       Internal set pixel routines                     *
        *                                                       *
        *********************************************************
*/

#if LCD_BITSPERPIXEL == 1
  #define SETPIXELPHYS(x,y,c)                       \
  {                                                 \
    unsigned int Off = y*LCD_BYTESPERLINE+((x)>>3);	  \
    U8 Data = 0x80>>((x)&7);						              \
    if (c&1) LCD_VRam[0][Off] |=  Data;				      \
    else     LCD_VRam[0][Off] &= ~Data;				      \
  }
#elif LCD_BITSPERPIXEL == 2
  #define SETPIXELPHYS(x,y,c)                       \
  {                                                 \
    unsigned int Off = y*LCD_BYTESPERLINE+((x)>>3);	  \
    U8 Data = 0x80>>((x)&7);						              \
    if (c&1) LCD_VRam[0][Off] |=  Data;				      \
    else     LCD_VRam[0][Off] &= ~Data;				      \
    if (c&2) LCD_VRam[1][Off] |=  Data;				      \
    else     LCD_VRam[1][Off] &= ~Data;             \
  }
#else
  #error unsupported Configuration
#endif


static void SetPixelPhys(int x, int y, PIXELCOLOR c) {
  SETPIXELPHYS(x,y,c);
}

static U8 _GetPixel(int x, int y) {
#if LCD_BITSPERPIXEL == 1
  unsigned int Off = y*LCD_BYTESPERLINE+(x>>3);
  U8 Data  = (LCD_VRam[0][Off] >> (7-(x&7))) &1;
  return Data;
#elif LCD_BITSPERPIXEL == 2
  unsigned int Off = y*LCD_BYTESPERLINE+(x>>3);
  U8 Data  = (LCD_VRam[0][Off] >> (7-(x&7))) &1;
  Data |= ((LCD_VRam[1][Off] >> (7-(x&7)))<<1) &2;
  return Data;
#else
  #error Colordepth not supported by this driver !
#endif
}


static void XorPixel   (int x, int y) {
  PIXELCOLOR Index = _GetPixel(x,y);
  Index = LCD_NUM_COLORS-1-Index;
  SetPixelPhys(x,y,Index);
}


/*

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本伊人色综合网| 亚洲婷婷综合色高清在线| 日本在线不卡视频| 欧美一区二区精品| 韩国v欧美v日本v亚洲v| 国产日韩欧美电影| 色综合天天综合给合国产| 一区二区三区在线看| 欧美丝袜自拍制服另类| 日韩不卡免费视频| 欧美激情在线观看视频免费| 色综合网色综合| 日本午夜一本久久久综合| 久久久精品黄色| 91麻豆免费观看| 日本欧洲一区二区| 国产精品免费免费| 欧美色男人天堂| 国产一区二区在线观看免费| 亚洲欧美日韩一区| 欧美一区二区三区四区高清| 国产不卡视频在线观看| 香港成人在线视频| 国产日韩欧美高清在线| 欧美日本一区二区三区四区| 国产一区二区导航在线播放| 亚洲一区二区三区四区中文字幕| 日韩欧美成人一区| 在线免费视频一区二区| 国产伦精品一区二区三区免费| 一区二区三区在线观看动漫| www国产精品av| 欧美日韩中文字幕精品| 懂色av一区二区三区免费观看| 午夜精品影院在线观看| 国产欧美日韩麻豆91| 欧美日韩一区三区四区| 国产盗摄女厕一区二区三区| 午夜精品福利一区二区三区av | 亚洲精品一线二线三线| 一本久久综合亚洲鲁鲁五月天| 久久精品99国产国产精| 亚洲欧美aⅴ...| 国产日本亚洲高清| 欧美电影免费观看高清完整版在线| av一区二区不卡| 国产真实乱子伦精品视频| 午夜伊人狠狠久久| 亚洲摸摸操操av| 欧美激情一区二区三区不卡| 91麻豆精品国产| 欧美性受xxxx黑人xyx性爽| 国产1区2区3区精品美女| 美女任你摸久久 | 亚洲视频在线一区二区| 精品免费一区二区三区| 欧美一区二区三区在| 欧美伊人久久大香线蕉综合69| 不卡一区二区中文字幕| 国产高清在线精品| 国产精品一区在线观看乱码 | 2021国产精品久久精品| 日韩三级在线观看| 欧美精品在线观看一区二区| 日本高清成人免费播放| 91亚洲精品久久久蜜桃网站 | 一区二区国产视频| 一区二区三区色| 怡红院av一区二区三区| 18成人在线观看| 亚洲免费观看高清完整版在线| 中文字幕一区二区在线观看| 国产精品国产三级国产aⅴ中文 | 亚洲一区二区精品久久av| 亚洲精品久久久久久国产精华液| 亚洲丝袜自拍清纯另类| 国产精品美女久久久久高潮| 日本一区二区三区在线观看| 国产欧美日韩精品一区| 国产精品久久一卡二卡| 国产精品成人免费精品自在线观看| 欧美精品一区二区三区在线| 欧美精品一区二区精品网| 久久久777精品电影网影网| 精品精品国产高清a毛片牛牛| 日韩欧美国产综合一区| 26uuu久久综合| 国产精品热久久久久夜色精品三区 | 天天亚洲美女在线视频| 日韩专区一卡二卡| 狠狠色狠狠色综合系列| 成人久久18免费网站麻豆| 色婷婷久久综合| 欧美疯狂做受xxxx富婆| 精品国产一区二区精华| 久久精品人人做人人综合 | 午夜视频一区二区三区| 青青草精品视频| 国产jizzjizz一区二区| 色综合激情五月| 欧美一区二区三区思思人| 久久久久久免费| 一区二区免费看| 精品一区二区三区在线播放视频| 国产精品1区二区.| 色婷婷国产精品综合在线观看| 777久久久精品| 国产精品日产欧美久久久久| 一区二区三区成人| 国内精品国产成人国产三级粉色| www.日韩在线| 欧美一级片在线观看| 国产日韩欧美精品一区| 亚洲二区视频在线| 国产成都精品91一区二区三| 欧美性感一类影片在线播放| 精品国产亚洲在线| 一区二区三区四区在线| 捆绑调教美女网站视频一区| 99久久精品国产网站| 91精品国产色综合久久ai换脸| 亚洲国产成人在线| 婷婷综合另类小说色区| 成人美女视频在线看| 欧美一区二区视频免费观看| 中文字幕一区二区三区在线观看 | 色婷婷综合久久久中文一区二区| 欧美电影免费提供在线观看| **性色生活片久久毛片| 国产在线播精品第三| 欧美日韩国产片| 亚洲欧美一区二区三区国产精品| 久久精品国产一区二区| 日本久久电影网| 亚洲国产精品成人久久综合一区| 蜜桃视频一区二区三区在线观看 | 成人免费视频国产在线观看| 日韩午夜av一区| 性久久久久久久久久久久| 91亚洲男人天堂| 亚洲国产精品t66y| 国产一区二区三区免费| 日韩精品综合一本久道在线视频| 亚洲综合一二三区| 一本色道久久综合亚洲aⅴ蜜桃| 久久婷婷国产综合精品青草 | 久久久精品国产免大香伊| 日韩国产精品大片| 在线观看91视频| 日韩美女啊v在线免费观看| 国产91在线观看| 国产婷婷色一区二区三区四区| 另类专区欧美蜜桃臀第一页| 91麻豆精品国产91久久久资源速度| 一区二区三区四区中文字幕| 成人av动漫网站| 国产精品久久久久久久浪潮网站| 国产精品996| 欧美国产激情二区三区 | 亚洲综合一二三区| 色偷偷久久一区二区三区| 亚洲欧美综合色| 91丨九色丨黑人外教| 国产精品乱码一区二三区小蝌蚪| 国产v综合v亚洲欧| 国产精品午夜久久| 99精品偷自拍| 亚洲精品精品亚洲| 在线观看视频91| 亚洲va欧美va天堂v国产综合| 色久综合一二码| 亚洲午夜精品在线| 6080yy午夜一二三区久久| 日韩电影免费一区| 精品福利一二区| 高清国产一区二区| 亚洲男人都懂的| 欧美色成人综合| 久久国产精品99精品国产| 久久老女人爱爱| 99久久国产综合精品色伊| 亚洲综合激情网| 3751色影院一区二区三区| 免费人成精品欧美精品| 精品99一区二区三区| 国产成人免费视频一区| 自拍偷自拍亚洲精品播放| 欧美色精品在线视频| 久久激情综合网| 中文字幕第一区二区| 色菇凉天天综合网| 蜜桃传媒麻豆第一区在线观看| 国产日韩欧美综合一区| 色综合欧美在线| 麻豆中文一区二区| 国产精品久久久一区麻豆最新章节| 色婷婷综合久久久久中文一区二区 | 亚洲综合一区在线| 欧美不卡一区二区| 99re8在线精品视频免费播放|