⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcd13xx.lst

📁 Keil C下通过的UCGUI,UCGUI的移植源代码
💻 LST
📖 第 1 页 / 共 5 页
字号:
                #undef  LCD_WRITE_MEM
                #undef  LCD_WRITE_REG
                #if LCD_BUSWIDTH==8
                  #define LCD_READ_MEM(Off)       PC_ReadMem8(Off)
                  #define LCD_WRITE_MEM(Off,Data) PC_WriteMem8(Off, Data)
                  #define LCD_READ_REG(Off)       PC_ReadReg8(Off)
                  #define LCD_WRITE_REG(Off,Data) PC_WriteReg8(Off, Data)
                #else
                  #define LCD_READ_MEM(Off)       PC_ReadMem16(Off)
                  #define LCD_WRITE_MEM(Off,Data) PC_WriteMem16(Off, Data)
                  #define LCD_READ_REG(Off)       PC_ReadReg16(Off)
                  #define LCD_WRITE_REG(Off,Data) PC_WriteReg16(Off, Data)
                #endif
              #endif
              
              /********************************************************
              *
              *           Remap Hardware macros
              *
              *********************************************************
              */
              
              #if LCD_NUM_DISPLAYS ==1 /* Use single display macros */
              #else
                #if LCD_DISPLAY_INDEX == 0     /* First display in a multi-display configuration */
                  #define LCD_READ_MEM(Off)       LCD_READ_MEM_0(Off)
                  #define LCD_WRITE_MEM(Off,Data) LCD_WRITE_MEM_0(Off,Data)
                  #define LCD_READ_REG(Off)       LCD_READ_REG_0(Off)
                  #define LCD_WRITE_REG(Off,Data) LCD_WRITE_REG_0(Off,Data)
                  #define LCD_INIT_CONTROLLER     LCD_INIT_CONTROLLER_0
                #else
                  #define LCD_READ_MEM(Off)       LCD_READ_MEM_1(Off)
                  #define LCD_WRITE_MEM(Off,Data) LCD_WRITE_MEM_1(Off,Data)
                  #define LCD_READ_REG(Off)       LCD_READ_REG_1(Off)
                  #define LCD_WRITE_REG(Off,Data) LCD_WRITE_REG_1(Off,Data)
                  #define LCD_INIT_CONTROLLER     LCD_INIT_CONTROLLER_1
C51 COMPILER V8.05a   LCD13XX                                                              04/11/2008 14:19:22 PAGE 9   

                #endif
              #endif
              
              /*
                      *********************************************************
                      *                                                       *
                      *          Internal types                               *
                      *                                                       *
                      *********************************************************
              */
              
              /*
                      *********************************************************
                      *                                                       *
                      *          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
              
              
              
              
              /*
                      *********************************************************
                      *                                                       *
                      *           Macro calculations                          *
                      *                                                       *
                      *********************************************************
              */
              
              /* 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
              
              #if   LCD_BITSPERPIXEL == 1
                #define BYTESPERLINE (LCD_VXSIZE_P/8)
                #define WORDSPERLINE (LCD_VXSIZE_P/16)
              #elif   LCD_BITSPERPIXEL == 2
                #define BYTESPERLINE (LCD_VXSIZE_P/4)
                #define WORDSPERLINE (LCD_VXSIZE_P/8)
              #elif   LCD_BITSPERPIXEL == 4
C51 COMPILER V8.05a   LCD13XX                                                              04/11/2008 14:19:22 PAGE 10  

                #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)
              #elif  (LCD_BITSPERPIXEL == 16)
                #define BYTESPERLINE (LCD_VXSIZE_P*2)
                #define WORDSPERLINE (LCD_VXSIZE_P)
              #else
                #error This colordepth is not supported !!!
              #endif
              
              #ifndef LCD_USE_32BIT_OFF
                #if ((WORDSPERLINE * LCD_YSIZE) > 0xFFFF)
                  #define LCD_USE_32BIT_OFF 1
                #else
                  #define LCD_USE_32BIT_OFF 0
                #endif
              #endif
              
              #if LCD_USE_32BIT_OFF
                typedef unsigned long tOff;
              #else
                typedef unsigned int  tOff;
              #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
              
              /*
                      *********************************************************
                      *                                                       *
                      *      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 ((LCD_CONTROLLER==1356)||(LCD_CONTROLLER==13806)) && (LCD_BUSWIDTH !=16)
                #error This controller does not work with 8-bit bus
C51 COMPILER V8.05a   LCD13XX                                                              04/11/2008 14:19:22 PAGE 11  

              #endif
              
              #if (((LCD_CONTROLLER==1356)||(LCD_CONTROLLER==13806)) && LCD_USE_BITBLT && ((LCD_BITSPERPIXEL != 8) && (L
             -CD_BITSPERPIXEL != 16)))
                #error BitBlt-Access only available for 8bpp and 16bpp mode
              #endif
              
              #if (LCD_CONTROLLER==1374)
                #if (LCD_BITSPERPIXEL == 8)
                  #if (LCD_FIXEDPALETTE != 233)
                    #error This controller supports only 233 palette in 8 bpp mode !
                  #endif
                #endif
              #endif
              
              
              
              
              
              /*
                      *********************************************************
                      *                                                       *
                      *       Macros for internal use                         *
                      *                                                       *
                      *********************************************************
              */
              
              #if !defined (LCD_LUT_COM)
                #define LINE2COM(y) y
              #else
                #define LINE2COM(y) LCD__aLine2Com0[y]
              #endif
              
              #if LCD_BUSWIDTH == 16
                #if   (LCD_BITSPERPIXEL == 16)
                  #define XY2OFF(x,y)    (tOff)((tOff)LINE2COM(y)*(tOff)WORDSPERLINE+(x))
                #elif (LCD_BITSPERPIXEL == 15)
                  #define XY2OFF(x,y)    (tOff)((tOff)LINE2COM(y)*(tOff)WORDSPERLINE+(x))
                #elif (LCD_BITSPERPIXEL ==  8)
                  #define XY2OFF(x,y)    (tOff)((tOff)LINE2COM(y)*(tOff)WORDSPERLINE+(x>>1))
                #elif (LCD_BITSPERPIXEL ==  4)
                  #define XY2OFF(x,y)    (tOff)((tOff)LINE2COM(y)*(tOff)WORDSPERLINE+(x>>2))
                #elif (LCD_BITSPERPIXEL ==  2)
                  #define XY2OFF(x,y)    (tOff)((tOff)LINE2COM(y)*(tOff)WORDSPERLINE+((x)>>3))
                #elif (LCD_BITSPERPIXEL ==  1)
                  #define XY2OFF(x,y)    (tOff)((tOff)LINE2COM(y)*(tOff)WORDSPERLINE+((x)>>4))
                #endif
              #else
                #if   (LCD_BITSPERPIXEL == 16)
                  #define XY2OFF(x,y)    (tOff)((tOff)LINE2COM(y)*(tOff)BYTESPERLINE+((x)<<1))
                #elif (LCD_BITSPERPIXEL == 15)
                  #define XY2OFF(x,y)    (tOff)((tOff)LINE2COM(y)*(tOff)BYTESPERLINE+((x)<<1))
                #elif (LCD_BITSPERPIXEL ==  8)
                  #define XY2OFF(x,y)    (tOff)((tOff)LINE2COM(y)*(tOff)BYTESPERLINE+(x))
                #elif (LCD_BITSPERPIXEL ==  4)
                  #define XY2OFF(x,y)    (tOff)((tOff)LINE2COM(y)*(tOff)BYTESPERLINE+((x)>>1))
                #elif (LCD_BITSPERPIXEL ==  2)
                  #define XY2OFF(x,y)    (tOff)((tOff)LINE2COM(y)*(tOff)BYTESPERLINE+((x)>>2))
                #elif (LCD_BITSPERPIXEL ==  1)
                  #define XY2OFF(x,y)    (tOff)((tOff)LINE2COM(y)*(tOff)BYTESPERLINE+((x)>>3))
                #endif
              #endif
C51 COMPILER V8.05a   LCD13XX                                                              04/11/2008 14:19:22 PAGE 12  

              
              #if ((LCD_SWAP_BYTE_ORDER) && (LCD_BITSPERPIXEL <=8)) | ((LCD_SWAP_BYTE_ORDER==0) && (LCD_BITSPERPIXEL  > 
             -8))
                #define READ_MEM(Off, Data)  Data = LCD_READ_MEM(Off); Data = ((Data & 0xff) << 8) + (Data >> 8)
                #define WRITE_MEM(Off, Data) LCD_WRITE_MEM(Off, (U16)(((Data & 0xff) << 8) + ((Data & 0xff00) >> 8)))
              #else
                #define READ_MEM(Off, Data)  Data = LCD_READ_MEM(Off)
                #define WRITE_MEM(Off, Data) LCD_WRITE_MEM(Off, Data)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -