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

📄 lcdconf.h

📁 UCGUI在爱普生c33上的移植实现
💻 H
字号:
/*
*********************************************************************************************************
*                                                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        : LCDConf_1375_C8_C320x240.h
Purpose     : Sample configuration file
----------------------------------------------------------------------
*/

#ifndef LCDCONF_H
#define LCDCONF_H

/*********************************************************************
*
*                   General configuration of LCD
*
**********************************************************************
*/

#define LCD_XSIZE      (320)   /* X-resolution of LCD, Logical coor. */
#define LCD_YSIZE      (240)   /* Y-resolution of LCD, Logical coor. */

#define LCD_BITSPERPIXEL (8)

#define LCD_CONTROLLER 1376

// My code start
#define LCD_SWAP_BYTE_ORDER	(1)
#define LCD_FIXEDPALETTE	(332)
#define LCD_SWAP_RB			(1)
// My code end

/*********************************************************************
*
*                   Full bus configuration
*
**********************************************************************
*/

#define LCD_READ_MEM(Off)            *((U16*)         (0x440000+(((U32)(Off))<<1)))
#define LCD_WRITE_MEM(Off,data)      *((U16*)         (0x440000+(((U32)(Off))<<1)))=data
#define LCD_READ_REG(Off)            *((volatile U16*)(0x400000+(((U16)(Off))<<1)))
#define LCD_WRITE_REG(Off,data)      *((volatile U16*)(0x400000+(((U16)(Off))<<1)))=data

/*********************************************************************
*
*                   Define contents of registers
*
**********************************************************************
*/

#define LCD_REG04 0x00 // BUSCLK MEMCLK Config Register
#define LCD_REG05 0x12 // PCLK Config  Register
#define LCD_REG10 0xD0 // PANEL Type Register
#define LCD_REG11 0x00 // MOD Rate Register
#define LCD_REG12 0x2B // Horizontal Total Register
#define LCD_REG14 ((LCD_XSIZE / 8) - 1) // Horizontal Display Period Register
#define LCD_REG16 0x00 // Horizontal Display Period Start Pos Register 0
#define LCD_REG17 0x00 // Horizontal Display Period Start Pos Register 1
#define LCD_REG18 0xFA // Vertical Total Register 0
#define LCD_REG19 0x00 // Vertical Total Register 1
#define LCD_REG1C (LCD_YSIZE - 1) // Vertical Display Period Register 0
#define LCD_REG1D 0x00 // Vertical Display Period Register 1
#define LCD_REG1E 0x00 // Vertical Display Period Start Pos Register 0
#define LCD_REG1F 0x00 // Vertical Display Period Start Pos Register 1
#define LCD_REG20 0x87 // Horizontal Sync Pulse Width Register
#define LCD_REG22 0x00 // Horizontal Sync Pulse Start Pos Register 0
#define LCD_REG23 0x00 // Horizontal Sync Pulse Start Pos Register 1
#define LCD_REG24 0x80 // Vertical Sync Pulse Width Register
#define LCD_REG26 0x01 // Vertical Sync Pulse Start Pos Register 0
#define LCD_REG27 0x00 // Vertical Sync Pulse Start Pos Register 1
//#define LCD_REG70 0x03 // Display Mode Register
#define LCD_REG70 0x83 // Display Mode Register
#define LCD_REG71 0x00 // Special Effects Register
// My code start
#define LCD_REG74 0x00
#define LCD_REG75 0x00
#define LCD_REG76 0x00
#define LCD_REG78 0x50
#define LCD_REG79 0x00
#define LCD_REG7C 0x00
#define LCD_REG7D 0x00
#define LCD_REG7E 0x00
#define LCD_REG80 0x50
#define LCD_REG81 0x00
#define LCD_REG84 0x00
#define LCD_REG85 0x00
#define LCD_REG88 0x00
#define LCD_REG89 0x00
#define LCD_REG8C 0x4F
#define LCD_REG8D 0x00
#define LCD_REG90 0xEF
#define LCD_REG91 0x00
#define LCD_REGA0 0x00
#define LCD_REGA1 0x00
#define LCD_REGA2 0x00
#define LCD_REGA3 0x00
#define LCD_REGA4 0x00
#define LCD_REGA5 0x00
#define LCD_REGA8 0x00
#define LCD_REGA9 0x80
#define LCD_REGAC 0x10	// REG_GPIO_STATUS_CONFIG0
#define LCD_REGAD 0x00
#define LCD_REGB0 0x00
#define LCD_REGB1 0x00
#define LCD_REGB2 0x00
#define LCD_REGB3 0x00
// My code end

/*********************************************************************
*
*                   Init sequence for 16 bit access
*
**********************************************************************
*/

#if !LCD_SWAP_BYTE_ORDER
  #define LCD_WRITE_REGLH(Adr, d0, d1) LCD_WRITE_REG(Adr, ((d0)<<8) | (d1))
#else
  #define LCD_WRITE_REGLH(Adr, d0, d1) LCD_WRITE_REG(Adr, ((d1)<<8) | (d0))
#endif  

#define LCD_INIT_CONTROLLER()                                                                    \
  LCD_WRITE_REGLH(0x04 >> 1, LCD_REG04, LCD_REG05); \
  LCD_WRITE_REGLH(0x10 >> 1, LCD_REG10, LCD_REG11); \
  LCD_WRITE_REGLH(0x12 >> 1, LCD_REG12, 0); \
  LCD_WRITE_REGLH(0x14 >> 1, LCD_REG14, 0); \
  LCD_WRITE_REGLH(0x16 >> 1, LCD_REG16, LCD_REG17); \
  LCD_WRITE_REGLH(0x18 >> 1, LCD_REG18, LCD_REG19); \
  LCD_WRITE_REGLH(0x1C >> 1, LCD_REG1C, LCD_REG1D); \
  LCD_WRITE_REGLH(0x1E >> 1, LCD_REG1E, LCD_REG1F); \
  LCD_WRITE_REGLH(0x20 >> 1, LCD_REG20, 0); \
  LCD_WRITE_REGLH(0x22 >> 1, LCD_REG22, LCD_REG23); \
  LCD_WRITE_REGLH(0x24 >> 1, LCD_REG24, 0); \
  LCD_WRITE_REGLH(0x26 >> 1, LCD_REG26, LCD_REG27); \
  LCD_WRITE_REGLH(0x70 >> 1, LCD_REG70, LCD_REG71); \
  LCD_WRITE_REGLH(0x74 >> 1, LCD_REG74, LCD_REG75); \
  LCD_WRITE_REGLH(0x76 >> 1, LCD_REG76, 0); \
  LCD_WRITE_REGLH(0x78 >> 1, LCD_REG78, LCD_REG79); \
  LCD_WRITE_REGLH(0x7C >> 1, LCD_REG7C, LCD_REG7D); \
  LCD_WRITE_REGLH(0x7E >> 1, LCD_REG7E, 0); \
  LCD_WRITE_REGLH(0x80 >> 1, LCD_REG80, LCD_REG81); \
  LCD_WRITE_REGLH(0x84 >> 1, LCD_REG84, LCD_REG85); \
  LCD_WRITE_REGLH(0x88 >> 1, LCD_REG88, LCD_REG89); \
  LCD_WRITE_REGLH(0x8C >> 1, LCD_REG8C, LCD_REG8D); \
  LCD_WRITE_REGLH(0x90 >> 1, LCD_REG90, LCD_REG91); \
  LCD_WRITE_REGLH(0xA0 >> 1, LCD_REGA0, LCD_REGA1); \
  LCD_WRITE_REGLH(0xA2 >> 1, LCD_REGA2, LCD_REGA3); \
  LCD_WRITE_REGLH(0xA4 >> 1, LCD_REGA4, LCD_REGA5); \
  LCD_WRITE_REGLH(0xA8 >> 1, LCD_REGA8, LCD_REGA9); \
  LCD_WRITE_REGLH(0xAC >> 1, LCD_REGAC, LCD_REGAD); \
  LCD_WRITE_REGLH(0xB0 >> 1, LCD_REGB0, LCD_REGB1); \
  LCD_WRITE_REGLH(0xB2 >> 1, LCD_REGB2, LCD_REGB3); \
 
#endif /* LCDCONF_H */

 

⌨️ 快捷键说明

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