?? lcd.h
字號(hào):
//------------------------------------------------------
// LCD : DMA frame size status
//------------------------------------------------------
UWORD16 LCD_DmaFrameSizeStatus(void);
// the same with a macro
#define LCD_DmaFrameSizeStatus_M GetField16(LCD_INTERFACE_CNTL_REG, MIN_FRAME_SIZE)
void LCD_0DummyWriteCycle(void);
//=======================================================
//
// LCD Controler Register (LCD_CNTL_REG)
//
//=======================================================
typedef enum
{
LCD_NCS0_SEL = 0,
LCD_NCS0_UNSEL = 1
} LCD_nCS0_t;
// THE VALUE FOR SELECTING INSTRUCTION/DISPLAY
// CONFIGURATION DEPENDS ON THE LCD CONTROLLER
//typedef enum
//{
// LCD_DISPLAY = 0, // For LH155N LCD
// LCD_INSTRUCTION = 1 // controller type
//} LCD_DataTypeSelection_t;
typedef enum
{
LCD_INSTRUCTION = 0, // For KS0741 LCD
LCD_DISPLAY = 1 // controller type
} LCD_DataTypeSelection_t;
#define LCD_START_READ 1
#define LCD_NRESET_CTRL 0
typedef enum
{
LCD_NCS1_SEL = 0,
LCD_NCS1_UNSEL = 1
} LCD_nCS1_t;
//------------------------------------------------------
// LCD : Controller 0 selected
//------------------------------------------------------
void LCD_Controller0Selected(void);
// the same with a macro
#define LCD_Controller0Selected_M LCD_INTERFACE_LCD_CNTL_REG = (LCD_INTERFACE_LCD_CNTL_REG & 0xFFFE)
//------------------------------------------------------
// LCD : Controller 0 unselected
//------------------------------------------------------
void LCD_Controller0UnSelected(void);
// the same with a macro
#define LCD_Controller0UnSelected_M LCD_INTERFACE_LCD_CNTL_REG = ((LCD_INTERFACE_LCD_CNTL_REG & 0xFFFE) | 0x0001)
//------------------------------------------------------
// LCD : Controller 0 status
//------------------------------------------------------
UWORD16 LCD_Controller0Status(void);
// the same with a macro
#define LCD_Controller0Status_M (LCD_INTERFACE_LCD_CNTL_REG & 0x0001)
//------------------------------------------------------
// LCD : Instruction/Display data type selection
//------------------------------------------------------
void LCD_DataTypeSelection(LCD_DataTypeSelection_t value);
#define SetField16(_reg,_pos,_value) (REG16((_reg)) |= (_value)<< (_reg ##_ ##_pos ##_POS ))
#define BSPUTIL_BITUTIL_BIT_FIELD_MASK16( _fieldWidth, _fieldOffset ) \
( \
( ( 0xFFFF >> ( ( 16 - (_fieldWidth) ) & 0x0F ) ) << ((_fieldOffset) & 0x0F) ) \
)
#define GetField16( _reg_, \
_pos_) \
( \
(*((volatile UINT16 *)(_reg_))) & \
BSPUTIL_BITUTIL_BIT_FIELD_MASK16( (_reg ##_ ##_pos ##_POS), (_reg ##_ ##_pos ##_NUMB) ) \
) >> (_pos_) \
)
// the same with a macro
#define LCD_DataTypeSelection_M(value) SetField16(LCD_INTERFACE_LCD_CNTL_REG, LCD_RS, (value))
//------------------------------------------------------
// LCD : Instruction/Display data type status
//------------------------------------------------------
UWORD16 LCD_DataTypeSelectionStatus(void);
// the same with a macro
#define LCD_DataTypeSelectionStatus_M ((LCD_INTERFACE_LCD_CNTL_REG >> LCD_INTERFACE_LCD_CNTL_REG_LCD_RS_POS) & 0x0001)
//------------------------------------------------------
// LCD : Start read
//------------------------------------------------------
void LCD_StartRead(void);
// the same with a macro
#define LCD_StartRead_M LCD_INTERFACE_LCD_CNTL_REG = (LCD_INTERFACE_LCD_CNTL_REG | 0x0004)
//------------------------------------------------------
// LCD : Start read status
//------------------------------------------------------
UWORD16 LCD_StartReadStatus(void);
// the same with a macro
#define LCD_StartReadStatus_M ((LCD_INTERFACE_LCD_CNTL_REG >> LCD_INTERFACE_LCD_CNTL_REG_LCD_START_READ_POS) & 0x0001)
//------------------------------------------------------
// Reset LCD controller
//------------------------------------------------------
void LCD_ResetController(void);
// the same with a macro
#define LCD_ResetController_M LCD_INTERFACE_LCD_CNTL_REG = (LCD_INTERFACE_LCD_CNTL_REG & 0xFFF7)
//------------------------------------------------------
// End LCD controller reset
//------------------------------------------------------
void LCD_EndResetController(void);
// the same with a macro
#define LCD_EndResetController_M LCD_INTERFACE_LCD_CNTL_REG = (LCD_INTERFACE_LCD_CNTL_REG | 0x0008)
//------------------------------------------------------
// Reset LCD controller status
//------------------------------------------------------
UWORD16 LCD_ResetControllerStatus(void);
// the same with a macro
#define LCD_ResetControllerStatus_M ((LCD_INTERFACE_LCD_CNTL_REG >> LCD_INTERFACE_LCD_CNTL_REG_LCD_NRESET_POS) & 0x001)
//------------------------------------------------------
// LCD : Controller 1 selected
//------------------------------------------------------
void LCD_Controller1Selected(void);
// the same with a macro
#define LCD_Controller1Selected_M LCD_INTERFACE_LCD_CNTL_REG = (LCD_INTERFACE_LCD_CNTL_REG & 0xFFEF)
//------------------------------------------------------
// LCD : Controller 1 unselected
//------------------------------------------------------
void LCD_Controller1UnSelected(void);
// the same with a macro
#define LCD_Controller1UnSelected_M LCD_INTERFACE_LCD_CNTL_REG = ((LCD_INTERFACE_LCD_CNTL_REG & 0xFFEF) | 0x0010)
//------------------------------------------------------
// LCD : Controller 1 status
//------------------------------------------------------
UWORD16 LCD_Controller1Status(void);
// the same with a macro
//#define LCD_Controller1Status_M GetField16(LCD_INTERFACE_LCD_CNTL_REG, LCD_NCS1)
/*******************************************************
*
* LCD interface Status Register (LCD_IF_STS_REG)
*
******************************************************/
typedef enum
{
LCD_FIFO_NOT_EMPTY = 0,
LCD_FIFO_IS_EMPTY = 1
} LCD_FifoEmptyStatus_t;
typedef enum
{
LCD_FIFO_NOT_FULL = 0,
LCD_FIFO_IS_FULL = 2
} LCD_FifoFullStatus_t;
typedef enum
{
LCD_RECEPTION_ON_GOING = 0,
LCD_RECEPTION_COMPLETED = 4
} LCD_ReadEventStatus_t;
//------------------------------------------------------
// LCD : FIFO empty status
//------------------------------------------------------
LCD_FifoEmptyStatus_t LCD_FifoEmptyStatus(void);
// the same with a macro
#define LCD_FifoEmptyStatus_M (LCD_INTERFACE_LCD_IF_STS_REG & 0x0001)
//------------------------------------------------------
// LCD : FIFO full status
//------------------------------------------------------
LCD_FifoFullStatus_t LCD_FifoFullStatus(void);
// the same with a macro
#define LCD_FifoFullStatus_M (LCD_INTERFACE_LCD_IF_STS_REG & 0x0002)
//------------------------------------------------------
// LCD : Read event status
//------------------------------------------------------
LCD_ReadEventStatus_t LCD_ReadEventStatus(void);
// the same with a macro
#define LCD_ReadEventStatus_M (LCD_INTERFACE_LCD_IF_STS_REG & 0x0004)
//=======================================================
//
// Write data FIFO (WR_FIFO)
//
//=======================================================
//------------------------------------------------------
// LCD : Write data into FIFO
//------------------------------------------------------
void LCD_Write(UWORD16 data);
// the same with a macro
#define LCD_Write_M(data) LCD_INTERFACE_WR_FIFO = (data)
//=======================================================
//
// Read data register (RD_REG)
//
//=======================================================
//------------------------------------------------------
// LCD : Read data from register
//------------------------------------------------------
UWORD16 LCD_Read(void);
// the same with a macro
#define LCD_Read_M LCD_INTERFACE_RD_REG
//=======================================================
//
// Library functions and macros
//
//=======================================================
//------------------------------------------------------
// LCD : Read interface Status Register (LCD_IF_STS_REG)
//------------------------------------------------------
typedef enum
{
LCD_FIFO_EMPTY_MASK = 1,
LCD_FIFO_FULL_MASK = 2,
LCD_READ_EVENT_MASK = 4
} LCD_InterfaceStatusRegister_t;
UWORD16 LCD_ReadInterfaceStatusRegister(void);
//------------------------------------------------------
// LCD : Wait FIFO empty
//------------------------------------------------------
//#define WAIT_FIFO_EMPTY while (GetField16(LCD_INTERFACE_LCD_IF_STS_REG, FIFO_EMPTY_STATUS) == LCD_FIFO_NOT_EMPTY);
#define WAIT_FIFO_EMPTY F_LCD_IF_WAIT_TX_FIFO_EMPTY
//------------------------------------------------------
// LCD : Set data type
// Wait FIFO empty before setting type
//------------------------------------------------------
void LCD_DataSetType(LCD_DataTypeSelection_t datatype);
#define LCD_DataSetType_M(datatype) WAIT_FIFO_EMPTY \
SetField16(LCD_INTERFACE_LCD_CNTL_REG, LCD_RS, (UWORD16)(datatype));
//------------------------------------------------------
// LCD : Set type and write date
// Wait FIFO empty before setting data type
//------------------------------------------------------
void LCD_WriteSetType(LCD_DataTypeSelection_t datatype, UWORD16 data);
// the same with a macro
#define LCD_WriteSetType_M(datatype, data) WAIT_FIFO_EMPTY \
SetField16(LCD_INTERFACE_LCD_CNTL_REG, LCD_RS, (UWORD16)(datatype)); \
SetField16(LCD_INTERFACE_WR_FIFO, DATA_TX, (UWORD16)(data));
//------------------------------------------------------
// LCD : Write instruction
// Wait FIFO empty before setting data type
//------------------------------------------------------
void LCD_WriteSetInstruction(UWORD16 instruction);
// the same with a macro
#define LCD_WriteSetInstruction_M(instruction) WAIT_FIFO_EMPTY \
SetField16(LCD_INTERFACE_LCD_CNTL_REG, LCD_RS, LCD_INSTRUCTION); \
SetField16(LCD_INTERFACE_WR_FIFO, DATA_TX, ((UWORD16)(instruction)));
//------------------------------------------------------
// LCD : Write data
// Wait FIFO empty before setting data type
//------------------------------------------------------
void LCD_WriteSetDisplay(UWORD16 data);
// the same with a macro
#define LCD_WriteSetDisplay_M(data) WAIT_FIFO_EMPTY \
SetField16(LCD_INTERFACE_LCD_CNTL_REG, LCD_RS, LCD_DISPLAY); \
SetField16(LCD_INTERFACE_WR_FIFO, DATA_TX, ((UWORD16)(data)));
//------------------------------------------------------
// LCD : Read register
//------------------------------------------------------
UWORD16 LCD_Read_Seq(void);
// the same with a macro
/*
#define LCD_Read_Seq_M(value) WAIT_FIFO_EMPTY \
SetField16(LCD_INTERFACE_LCD_CNTL_REG, LCD_START_READ, 1); \
while (GetField16(LCD_INTERFACE_LCD_IF_STS_REG, LCD_READ_EVENT_STATUS) == LCD_RECEPTION_ON_GOING); \
(value) = GetField16(LCD_INTERFACE_RD_REG, DATA_RX);
*/
//------------------------------------------------------
// LCD : Reset controller
//------------------------------------------------------
void LCD_ControllerReset(void);
void LCD_SelectController0(void);
// Same with macro
#define LCD_SelectController0_M LCD_Controller0Selected_M; \
LCD_Controller1UnSelected_M;
void LCD_SelectController1(void);
// Same with macro
#define LCD_SelectController1_M LCD_Controller1Selected_M; \
LCD_Controller0UnSelected_M;
#define LCD_CMD(addr,value) ((UWORD8)(addr) | (UWORD8)((0x0F & ((UWORD8)(value)))))
//UWORD16 read_lcd_id(void);
#endif /* LCD_H */
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -