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

📄 lcd.h

📁 MMI层OBJ不能完全编译
💻 H
📖 第 1 页 / 共 3 页
字号:
									
//LCD_INTERFACE_LCD_CNTL_REG						
//-------------------							
#define            LCD_INTERFACE_LCD_CNTL_REG                              REG16(LCD_INTERFACE_BASE_ADDR+LCD_INTERFACE_LCD_CNTL_REG_OFFSET)
									
									
#define            LCD_INTERFACE_LCD_CNTL_REG_LCD_NCS1_POS                   4
#define            LCD_INTERFACE_LCD_CNTL_REG_LCD_NCS1_NUMB                  1
#define            LCD_INTERFACE_LCD_CNTL_REG_LCD_NCS1_RES_VAL               0x1
//R/W									
									
#define            LCD_INTERFACE_LCD_CNTL_REG_LCD_NRESET_POS                 3
#define            LCD_INTERFACE_LCD_CNTL_REG_LCD_NRESET_NUMB                1
#define            LCD_INTERFACE_LCD_CNTL_REG_LCD_NRESET_RES_VAL             0x0
//R/W									
									
#define            LCD_INTERFACE_LCD_CNTL_REG_LCD_START_READ_POS             2
#define            LCD_INTERFACE_LCD_CNTL_REG_LCD_START_READ_NUMB            1
#define            LCD_INTERFACE_LCD_CNTL_REG_LCD_START_READ_RES_VAL         0x0
//R/W									
									
#define            LCD_INTERFACE_LCD_CNTL_REG_LCD_RS_POS                     1
#define            LCD_INTERFACE_LCD_CNTL_REG_LCD_RS_NUMB                    1
#define            LCD_INTERFACE_LCD_CNTL_REG_LCD_RS_RES_VAL                 0x0
//R/W									
									
#define            LCD_INTERFACE_LCD_CNTL_REG_LCD_NCS0_POS                   0
#define            LCD_INTERFACE_LCD_CNTL_REG_LCD_NCS0_NUMB                  1
#define            LCD_INTERFACE_LCD_CNTL_REG_LCD_NCS0_RES_VAL               0x1
//R/W									
									
									
//LCD_INTERFACE_LCD_IF_STS_REG						
//-------------------							
#define            LCD_INTERFACE_LCD_IF_STS_REG                            REG16(LCD_INTERFACE_BASE_ADDR+LCD_INTERFACE_LCD_IF_STS_REG_OFFSET)
									
									
#define            LCD_INTERFACE_LCD_IF_STS_REG_LCD_READ_EVENT_STATUS_POS     2
#define            LCD_INTERFACE_LCD_IF_STS_REG_LCD_READ_EVENT_STATUS_NUMB    1
#define            LCD_INTERFACE_LCD_IF_STS_REG_LCD_READ_EVENT_STATUS_RES_VAL 0x0
//R/C									
									
#define            LCD_INTERFACE_LCD_IF_STS_REG_FIFO_FULL_STATUS_POS         1
#define            LCD_INTERFACE_LCD_IF_STS_REG_FIFO_FULL_STATUS_NUMB        1
#define            LCD_INTERFACE_LCD_IF_STS_REG_FIFO_FULL_STATUS_RES_VAL     0x0
//R									
									
#define            LCD_INTERFACE_LCD_IF_STS_REG_FIFO_EMPTY_STATUS_POS        0
#define            LCD_INTERFACE_LCD_IF_STS_REG_FIFO_EMPTY_STATUS_NUMB       1
#define            LCD_INTERFACE_LCD_IF_STS_REG_FIFO_EMPTY_STATUS_RES_VAL     0x1
//R									
									
									
//LCD_INTERFACE_WR_FIFO							
//-------------------							
#define            LCD_INTERFACE_WR_FIFO                                   REG16(LCD_INTERFACE_BASE_ADDR+LCD_INTERFACE_WR_FIFO_OFFSET)
									
									
#define            LCD_INTERFACE_WR_FIFO_DATA_TX_POS                         0
#define            LCD_INTERFACE_WR_FIFO_DATA_TX_NUMB                        16
#define            LCD_INTERFACE_WR_FIFO_DATA_TX_RES_VAL                     0x0000
//W									
									
									
//LCD_INTERFACE_RD_REG							
//-------------------							
#define            LCD_INTERFACE_RD_REG                                    REG16(LCD_INTERFACE_BASE_ADDR+LCD_INTERFACE_RD_REG_OFFSET)
									
									
#define            LCD_INTERFACE_RD_REG_DATA_RX_POS                          0
#define            LCD_INTERFACE_RD_REG_DATA_RX_NUMB                         16
#define            LCD_INTERFACE_RD_REG_DATA_RX_RES_VAL                      None
//R

//END INC GENERATION
//--------------------------------------

//------------------------------------------------------------------
//
// LCD functions prototypes, typedef and macros
//
//------------------------------------------------------------------

//=====================================================
//
// Control Register (CNTL_REG)
//
//=====================================================
#define LCD_NRESET   0

typedef enum
{
  LCD_CLOCK13_DIS = 0,
  LCD_CLOCK13_EN  = 1 
} LCD_Clock13MHz_t;

typedef enum
{
  LCD_TX_CLOCK_DIV8 = 0,
  LCD_TX_CLOCK_DIV4 = 1,
  LCD_TX_CLOCK_DIV2 = 2,
  LCD_TX_CLOCK_DIV1 = 3
} LCD_TxClockDiv_t;

typedef enum
{
  LCD_RX_CLOCK_DIV8 = 0,
  LCD_RX_CLOCK_DIV4 = 1,
  LCD_RX_CLOCK_DIV2 = 2,
  LCD_RX_CLOCK_DIV1 = 3
} LCD_RxClockDiv_t;

typedef enum
{
  LCD_FIFO_EMPTY_IT_DIS = 0,
  LCD_FIFO_EMPTY_IT_EN  = 1
} LCD_FifoEmptyIt_t;

typedef enum
{
  LCD_READ_EMPTY_EVENT_IT_DIS = 0,
  LCD_READ_EMPTY_EVENT_IT_EN  = 1
} LCD_LcdReadEventIt_t;

typedef enum
{
  LCD_DMA_DIS = 0,
  LCD_DMA_EN  = 1
} LCD_Dma_t;

typedef enum
{
  LCD_INTERFACE_6800  = 0,
  LCD_INTERFACE_8086  = 1
} LCD_InterfaceType_t;

typedef enum
{
  LCD_WRITE_MSB_FIRST  = 0,
  LCD_WRITE_LSB_FIRST  = 1
} LCD_EndianismConfig_t;

typedef enum
{
  LCD_SUSPEND_DISABLED  = 0,
  LCD_SUSPEND_ENABLED  = 1
} LCD_SuspendConfig_t;

typedef enum
{
  LCD_MIN_FRAME_SIZE_16W  = 0,
  LCD_MIN_FRAME_SIZE_32W  = 1,
  LCD_MIN_FRAME_SIZE_64W  = 2,
  LCD_MIN_FRAME_SIZE_128W = 3
} LCD_DmaFrameSize_t;

typedef enum
{
  LCD_0_DUMMY  = 0,
  LCD_1_DUMMY  = 1,
  LCD_2_DUMMY  = 2
} LCD_DummyConfig_t;


//------------------------------------------------------
// Reset LCD interface
//------------------------------------------------------
void LCD_ResetInterface(void);

// the same with a macro
#define LCD_ResetInterface_M LCD_INTERFACE_CNTL_REG = (LCD_INTERFACE_CNTL_REG & 0xFFFE)

//------------------------------------------------------
// LCD : Clock 13MHz enable
//------------------------------------------------------
void LCD_Clock13MHzEnable(void);

// the same with a macro
#define LCD_Clock13MHzEnable_M LCD_INTERFACE_CNTL_REG = ((LCD_INTERFACE_CNTL_REG & 0xFFFD) | LCD_CLOCK13_EN);

//------------------------------------------------------
// LCD : Clock 13MHz disable
//------------------------------------------------------
void LCD_Clock13MHzDisable(void);

// the same with a macro
#define LCD_Clock13MHzDisable_M LCD_INTERFACE_CNTL_REG = (LCD_INTERFACE_CNTL_REG & 0xFFFD);

//------------------------------------------------------
// LCD : Clock 13MHz status
//------------------------------------------------------
UWORD16 LCD_Clock13MHzStatus(void);

// the same with a macro
#define LCD_Clock13MHzStatus_M ((LCD_INTERFACE_CNTL_REG >> LCD_INTERFACE_CNTL_REG_CLOCK13_EN_POS) & 0x0001)

//------------------------------------------------------
// LCD : TX clock div
//------------------------------------------------------
void LCD_TXClockDiv(UWORD16 value);

// the same with a macro
#define LCD_TXClockDiv_M(value) SetField16(LCD_INTERFACE_CNTL_REG, TX_CLOCK_DIV, (value))

//------------------------------------------------------
// LCD : TX clock div status
//------------------------------------------------------
UWORD16 LCD_TXClockDivStatus(void);

// the same with a macro
#define LCD_TXClockDivStatus_M GetField16(LCD_INTERFACE_CNTL_REG, TX_CLOCK_DIV)

//------------------------------------------------------
// LCD : FIFO empty interrupt enable
//------------------------------------------------------
void LCD_FifoEmptyItEnable(void);

// the same with a macro
#define LCD_FifoEmptyItEnable_M LCD_INTERFACE_CNTL_REG = ((LCD_INTERFACE_CNTL_REG & 0xFFBF) | 0x0040)

//------------------------------------------------------
// LCD : FIFO empty interrupt disable
//------------------------------------------------------
void LCD_FifoEmptyItDisable(void);

// the same with a macro
#define LCD_FifoEmptyItDisable_M LCD_INTERFACE_CNTL_REG = (LCD_INTERFACE_CNTL_REG & 0xFFBF)

//------------------------------------------------------
// LCD : FIFO empty interrupt status
//------------------------------------------------------
UWORD16 LCD_FifoEmptyItStatus(void);

// the same with a macro
#define LCD_FifoEmptyItStatus_M ((LCD_INTERFACE_CNTL_REG >> LCD_INTERFACE_CNTL_REG_FIFO_EMPTY_IT_EN_POS) & 0x0001)

//------------------------------------------------------
// LCD : Read event interrupt enable
//------------------------------------------------------
void LCD_ReadEventItEnable(void);

// the same with a macro
#define LCD_ReadEventItEnable_M LCD_INTERFACE_CNTL_REG = ((LCD_INTERFACE_CNTL_REG & 0xFF7F) | 0x0080)

//------------------------------------------------------
// LCD : Read event interrupt disable
//------------------------------------------------------
void LCD_ReadEventItDisable(void);

// the same with a macro
#define LCD_ReadEventItDisable_M LCD_INTERFACE_CNTL_REG = (LCD_INTERFACE_CNTL_REG & 0xFF7F)

//------------------------------------------------------
// LCD : Read event interrupt status
//------------------------------------------------------
UWORD16 LCD_ReadEventItStatus(void);
// the same with a macro
#define LCD_ReadEventItStatus_M ((LCD_INTERFACE_CNTL_REG >> LCD_INTERFACE_CNTL_REG_LCD_READ_EVENT_IT_EN_POS) & 0x0001)


//------------------------------------------------------
// LCD : DMA enable
//------------------------------------------------------
void LCD_DMAEnable(void);

// the same with a macro
#define LCD_DMAEnable_M   LCD_INTERFACE_CNTL_REG = ((LCD_INTERFACE_CNTL_REG & 0xFEFF) | 0x0100)

//------------------------------------------------------
// LCD : DMA disable
//------------------------------------------------------
void LCD_DMADisable(void);

// the same with a macro
#define LCD_DMADisable_M   LCD_INTERFACE_CNTL_REG = (LCD_INTERFACE_CNTL_REG & 0xFEFF)

//------------------------------------------------------
// LCD : DMA status
//------------------------------------------------------
UWORD16 LCD_DMAStatus(void);

// the same with a macro
#define LCD_DMAStatus_M ((LCD_INTERFACE_CNTL_REG >> LCD_INTERFACE_CNTL_REG_DMA_EN_POS) & 0x0001)

//------------------------------------------------------
// LCD : 6800 interface type selected
//------------------------------------------------------
void LCD_6800InterfaceTypeSelected(void);

// the same with a macro
#define LCD_6800InterfaceTypeSelected_M LCD_INTERFACE_CNTL_REG = (LCD_INTERFACE_CNTL_REG & 0xFDFF)

//------------------------------------------------------
// LCD : 8086 interface type selected
//------------------------------------------------------
void LCD_8086InterfaceTypeSelected(void);

// the same with a macro
#define LCD_8086InterfaceTypeSelected_M LCD_INTERFACE_CNTL_REG = ((LCD_INTERFACE_CNTL_REG & 0xFDFF) | 0x0200)

//------------------------------------------------------
// LCD : 6800/8086 mode status
//------------------------------------------------------
UWORD16 LCD_InterfaceTypeStatus(void);

// the same with a macro
#define LCD_InterfaceTypeStatus_M ((LCD_INTERFACE_CNTL_REG >> LCD_INTERFACE_CNTL_REG_MODE_POS) & 0x0001)

//------------------------------------------------------
// LCD : Write MSB First
//------------------------------------------------------
void LCD_WriteMSBFirst(void);

// the same with a macro
#define LCD_WriteMSBFirst_M LCD_INTERFACE_CNTL_REG = (LCD_INTERFACE_CNTL_REG & 0xFBFF)

//------------------------------------------------------
// LCD : Write LSB First
//------------------------------------------------------
void LCD_WriteLSBFirst(void);

// the same with a macro
#define LCD_WriteLSBFirst_M LCD_INTERFACE_CNTL_REG = ((LCD_INTERFACE_CNTL_REG & 0xFBFF) | 0x0400)

//------------------------------------------------------
// LCD : Endianism Status
//------------------------------------------------------
UWORD16 LCD_EndianismStatus(void);

// the same with a macro
#define LCD_EndianismStatus_M ((LCD_INTERFACE_CNTL_REG >> LCD_INTERFACE_CNTL_REG_FLIP_BYTES_POS) & 0x0001)

//------------------------------------------------------
// LCD : Tx never suspended
//------------------------------------------------------
void LCD_TxNotSuspended(void);

// the same with a macro
#define LCD_TxNotSuspended_M LCD_INTERFACE_CNTL_REG = (LCD_INTERFACE_CNTL_REG & 0xF7FF)


//------------------------------------------------------
// LCD : Allow Tx suspend
//------------------------------------------------------
 void LCD_AllowTxSuspended(void);

// the same with a macro
#define LCD_AllowTxSuspended_M LCD_INTERFACE_CNTL_REG = ((LCD_INTERFACE_CNTL_REG & 0xF7FF) | 0x0800)


//------------------------------------------------------
// LCD : Suspend status
//------------------------------------------------------
UWORD16 LCD_TxSuspendStatus(void);

// the same with a macro
#define LCD_TxSuspendStatus_M ((LCD_INTERFACE_CNTL_REG >> LCD_INTERFACE_CNTL_REG_SUSPEND_EN_POS) & 0x0001)

//------------------------------------------------------
// LCD : DMA frame size set
//------------------------------------------------------
void LCD_DmaFrameSizeSet(UWORD16 value);

// the same with a macro
#define LCD_DmaFrameSizeSet_M(value) SetField16(LCD_INTERFACE_CNTL_REG, MIN_FRAME_SIZE, (value))

⌨️ 快捷键说明

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