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

📄 lcdwin.lst

📁 Keil C下通过的UCGUI,UCGUI的移植源代码
💻 LST
📖 第 1 页 / 共 3 页
字号:
                    }
                  } else {
                    for (;xsize > 0; xsize--,x++,p++) {
                      SETPIXEL(x, y, *p);
                    }
                  }
                } else {   /* Handle transparent bitmap */
                  if (pTrans) {
                    for (; xsize > 0; xsize--, x++, p++) {
                      pixel = *p;
                      if (pixel) {
                        SETPIXEL(x+0, y, *(pTrans+pixel));
                      }
                    }
                  } else {
                    for (; xsize > 0; xsize--, x++, p++) {
                      pixel = *p;
                      if (pixel) {
                        SETPIXEL(x+0, y, pixel);
                      }
                    }
                  }
C51 COMPILER V8.05a   LCDWIN                                                               04/11/2008 14:19:26 PAGE 9   

                }
              }
              #endif
              
              /*
                      *********************************************************
                      *                                                       *
                      *         Universal draw Bitmap routine                 *
                      *                                                       *
                      *********************************************************
              */
              
              void LCD_L0_DrawBitmap   (int x0, int y0,
                                     int xsize, int ysize,
                                     int BitsPerPixel, 
                                     int BytesPerLine,
                                     const U8* pData, int Diff,
                                     const LCD_PIXELINDEX* pTrans)
              {
                int i;
                /*
                   Use DrawBitLineXBPP
                */
                for (i=0; i<ysize; i++) {
                  switch (BitsPerPixel) {
                  case 1:
                    DrawBitLine1BPP(x0, i+y0, pData, Diff, xsize, pTrans);
                    break;
                  #if (LCD_MAX_LOG_COLORS > 2)
                    case 2:
                      DrawBitLine2BPP(x0, i+y0, pData, Diff, xsize, pTrans);
                      break;
                  #endif
                  #if (LCD_MAX_LOG_COLORS > 4)
                    case 4:
                      DrawBitLine4BPP(x0, i+y0, pData, Diff, xsize, pTrans);
                      break;
                  #endif
                  #if (LCD_MAX_LOG_COLORS > 16)
                    case 8:
                      DrawBitLine8BPP(x0, i+y0, pData, xsize, pTrans);
                      break;
                  #endif
                  #if (LCD_BITSPERPIXEL > 8)
                    case 16:
                      DrawBitLine16BPP(x0, i+y0, (const U16 *)pData, xsize, pTrans);
                      break;
                  #endif
                  }
                  pData += BytesPerLine;
                }
              }
              
              
              /********************************************************
              *
              *       LCD_L0_SetOrg
              *
              *********************************************************
              
              Purpose:        Sets the original position of the virtual display.
                              Has no function at this point with the PC-driver.
C51 COMPILER V8.05a   LCDWIN                                                               04/11/2008 14:19:26 PAGE 10  

              */
              
              int OrgX, OrgY;
              void LCD_L0_SetOrg(int x, int y) {
                OrgX = x;
                OrgY = y;
              }
              
              /*
                      *********************************************************
                      *                                                       *
                      *           Support for verification                    *
                      *                                                       *
                      *********************************************************
              
              The following routines are implemented, but have no functionility
              at this point. The reason is that these functions are supposed
              to supervise the hardware, which for obvious reasons can not be
              done in a simulation.
              
              */
              #if LCD_VERIFY
              int  LCD_GetErrStat(void) {
                return 0;
              }
              void LCD_ClrErrStat(void) {
              }
              int  LCD_GetErrCnt (void) {
                return 0;
              }
              #endif  
              
              /*
                      *********************************************************
                      *                                                       *
                      *       LCD_On                                          *
                      *       LCD_Off                                         *
                      *                                                       *
                      *********************************************************
              
              (Not supported in Simulation)
              */
              
              void LCD_Off          (void) {}
              void LCD_On           (void) {}
              
              /*
                      *********************************************************
                      *                                                       *
                      *       LUT routines (lookup tables)                    *
                      *                                                       *
                      *********************************************************
              */
              void LCD_L0_SetLUTEntry(U8 Pos, LCD_COLOR color) {
                LCDSIM_SetLUTEntry(Pos, color);
              }
              
              
              /*
                      *********************************************************
                      *                                                       *
                      *       LCD_Init : Init the display                     *
C51 COMPILER V8.05a   LCDWIN                                                               04/11/2008 14:19:26 PAGE 11  

                      *                                                       *
                      *********************************************************
              */
              
              int  LCD_L0_Init(void) {
                int x,y;
                // Create Bitmaps to simulate LCD (pages)
                for (x=0; x< LCD_XSIZE; x++)
                  for (y=0; y< LCD_YSIZE; y++)
                    SETPIXEL( x, y, BKCOLORINDEX);
                      return 0;
              }
              
              int  LCD_L0_CheckInit(void) {
                return 0;
              } 
              
              /*
                      ******************************************
                      *                                        *
                      *    Re-initialize LCD                   *
                      *                                        *
                      ******************************************
              
              This routine is supplied for compatibility and interchangability of
              "C"-sources with embedded versions of the driver. It has no real
              effect in the PC-version as there is simply no need to re-initialize
              the LCD since it is just simulated anyhow.
              */
              
              void LCD_L0_ReInit       (void) {}
              
              unsigned LCD_L0_GetPixelIndex(int x, int y)  {
                return LCDSIM_GetPixelIndex(x,y);
              }
              
              /*
                      *********************************************************
                      *                                                       *
                      *       LCD_L0_XorPixel                                 *
                      *                                                       *
                      *********************************************************
              
              Purpose:  This routine is called by emWin. It writes 1 pixel into the
                        display.
              
              */
              
              void LCD_L0_XorPixel(int x, int y) {
                XORPIXEL(x, y);
              }
              
              
              /*
                      *********************************************************
                      *                                                       *
                      *       LCD_L0_SetPixelIndex                            *
                      *                                                       *
                      *********************************************************
              
              Purpose:  This routine is called by emWin. It writes 1 pixel into the
                        display.
C51 COMPILER V8.05a   LCDWIN                                                               04/11/2008 14:19:26 PAGE 12  

              
              */
              
              void LCD_L0_SetPixelIndex(int x, int y, int ColorIndex) {
                SETPIXEL(x, y, ColorIndex);
              }
              
              
              #else
 684            void LCDWin(void) { } /* avoid empty object files */
 685          #endif /* defined(WIN32) && defined(LCD_USE_WINSIM) */
 686          
 687          
 688          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =      1    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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