📄 lcd_sw.h
字号:
}
#endif
#endif // #ifdef __SM264_MIKI_DRV_LCD_TRULY_GG3800__
#if defined(__SM264_MIKI_DRV_LCD_TRULY_GG3558__)
#define LCD_S1D19105_CTRL_ADDR LCD_PARALLEL0_A0_LOW_ADDR
#define LCD_S1D19105_DATA_ADDR LCD_PARALLEL0_A0_HIGH_ADDR
#define MAIN_LCD_CMD_ADDR LCD_S1D19105_CTRL_ADDR
#define MAIN_LCD_DATA_ADDR LCD_S1D19105_DATA_ADDR
#define MAIN_LCD_OUTPUT_FORMAT LCM_8BIT_16_BPP_RGB565_1
#define SET_LCD_PARALLEL_DATA_BUS_WIDTH SET_LCD_PARALLEL_8BIT_DATA_BUS
#if (defined(MT6218B) || defined(MT6219) || defined(MT6217) || defined(MT6226)|| defined(MT6226M))
#ifdef LCD_CMD_DMA_MODE
#define LCD_SEND_DMA_CMD(n) \
{\
DISABLE_LCD_TRANSFER_COMPLETE_INT;\
SET_LCD_ROI_CTRL_NUMBER_OF_CMD(n);\
ENABLE_LCD_ROI_CTRL_CMD_FIRST;\
SET_LCD_ROI_WINDOW_SIZE(0, 0);\
START_LCD_TRANSFER;\
while (LCD_IS_RUNNING) {};\
}
#define LCD_CtrlWrite_S1D19105(_data) \
{\
SET_LCD_CMD_PARAMETER(0, LCD_CMD, (_data&0xFF));\
LCD_SEND_DMA_CMD(1);\
}
#define LCD_DataWrite_S1D19105(_data) \
{\
SET_LCD_CMD_PARAMETER(0, LCD_DATA, (_data&0xFF));\
LCD_SEND_DMA_CMD(1);\
}
#else
#define LCD_CtrlWrite_S1D19105(_data) \
{\
*(volatile kal_uint8 *) LCD_S1D19105_CTRL_ADDR= (_data&0xFF);\
Dummy_Delay();\
}
#define LCD_DataWrite_S1D19105(_data) \
{\
*(volatile kal_uint8 *) LCD_S1D19105_DATA_ADDR = (_data&0xFF);\
Dummy_Delay();\
}
#endif // LCD_CMD_DMA_MODE
#define Write_REG_S1D19105(_reg,_data)\
{\
LCD_CtrlWrite_S1D19105(_reg);\
LCD_DataWrite_S1D19105(_data); \
}
#endif
#endif // #ifdef __SM264_MIKI_DRV_LCD_TRULY_GG3558__
//===========================================================================
//
// SAMSUNG 262k Color LCD, 176x220 Parallel Interface
// Chip S6D0118
//
//===========================================================================
#ifdef __DRV_LCD_SAMSUNG_S6D0118__
#define LCD_CTRLAddr LCD_PARALLEL0_A0_LOW_ADDR
#define LCD_DATAAddr LCD_PARALLEL0_A0_HIGH_ADDR
#define LCD_S6D0118_CTRL_ADDR LCD_CTRLAddr
#define LCD_S6D0118_DATA_ADDR LCD_DATAAddr
#define MAIN_LCD_CMD_ADDR LCD_S6D0118_CTRL_ADDR
#define MAIN_LCD_DATA_ADDR LCD_S6D0118_DATA_ADDR
#define MAIN_LCD_OUTPUT_FORMAT LCM_8BIT_16_BPP_RGB565_1
#define SET_LCD_PARALLEL_DATA_BUS_WIDTH SET_LCD_PARALLEL_8BIT_DATA_BUS
#if (defined(MT6218B) || defined(MT6219) || defined(MT6217) || defined(MT6226)|| defined(MT6226M))
#define LCD_SEND_DMA_CMD(n) \
{\
DISABLE_LCD_TRANSFER_COMPLETE_INT;\
SET_LCD_ROI_CTRL_NUMBER_OF_CMD(n);\
ENABLE_LCD_ROI_CTRL_CMD_FIRST;\
SET_LCD_ROI_WINDOW_SIZE(0,0);\
START_LCD_TRANSFER;\
while (LCD_IS_RUNNING) {};\
}
#ifdef LCD_CMD_DMA_MODE
#define LCD_CtrlWrite_S6D0118(_data) \
{\
SET_LCD_CMD_PARAMETER(0, LCD_CMD, (_data & 0xFF00) >> 8);\
SET_LCD_CMD_PARAMETER(1, LCD_CMD, (_data & 0x00FF));\
LCD_SEND_DMA_CMD(2);\
}
#define LCD_DataWrite_S6D0118(_data) \
{\
SET_LCD_CMD_PARAMETER(0, LCD_DATA, (_data & 0xFF00) >> 8);\
SET_LCD_CMD_PARAMETER(1, LCD_DATA, (_data & 0xFF));\
LCD_SEND_DMA_CMD(2);\
}
#else
#define LCD_CtrlWrite_S6D0118(_data) \
{\
*(volatile kal_uint8 *) LCD_S6D0118_CTRL_ADDR = (_data & 0xFF00) >> 8;\
*(volatile kal_uint8 *) LCD_S6D0118_CTRL_ADDR = _data & 0x00FF;\
Dummy_Delay();\
}
#define LCD_DataWrite_S6D0118(_data) \
{\
*(volatile kal_uint8 *) LCD_S6D0118_DATA_ADDR = (_data & 0xFF00) >> 8;\
*(volatile kal_uint8 *) LCD_S6D0118_DATA_ADDR = _data & 0xFF;\
Dummy_Delay();\
}
#endif // LCD_CMD_DMA_MODE
#define LCD_RAMWrite_S6D0118(_data) \
{\
*(volatile kal_uint8 *) LCD_S6D0118_DATA_ADDR = (_data & 0xFF00) >> 8;\
*(volatile kal_uint8 *) LCD_S6D0118_DATA_ADDR = _data & 0xFF;\
}
#endif
#endif // #ifdef __DRV_LCD_SAMSUNG_S6D0118__
#ifdef __MIKI_DRV_LCD_TRULY_GG3674__
#define LCD_S6D0110_CTRL_ADDR LCD_PARALLEL0_A0_LOW_ADDR
#define LCD_S6D0110_DATA_ADDR LCD_PARALLEL0_A0_HIGH_ADDR
#define MAIN_LCD_CMD_ADDR LCD_S6D0110_CTRL_ADDR
#define MAIN_LCD_DATA_ADDR LCD_S6D0110_DATA_ADDR
#define MAIN_LCD_OUTPUT_FORMAT LCM_8BIT_16_BPP_RGB565_1
#define SET_LCD_PARALLEL_DATA_BUS_WIDTH SET_LCD_PARALLEL_8BIT_DATA_BUS
#define LCD_UC1682XHCY_CTRL_ADDR LCD_PARALLEL1_A0_LOW_ADDR
#define LCD_UC1682XHCY_DATA_ADDR LCD_PARALLEL1_A0_HIGH_ADDR
#define SUB_LCD_CMD_ADDR LCD_UC1682XHCY_CTRL_ADDR
#define SUB_LCD_DATA_ADDR LCD_UC1682XHCY_DATA_ADDR
#define SUB_LCD_OUTPUT_FORMAT LCM_8BIT_16_BPP_BGR565_1//LCM_8BIT_16_BPP_RGB565_1
#define SET_LCD_PARALLEL1_DATA_BUS_WIDTH SET_LCD_PARALLEL1_8BIT_DATA_BUS
#ifdef MCU_13M
#define Dummy_Delay()
#endif
#ifdef MCU_26M
#define Dummy_Delay() \
{\
kal_uint16 _stat;\
_stat = *(volatile kal_uint16 *)LCD_DUMMYADDR;\
}
#endif
#ifdef MCU_39M
#define Dummy_Delay() \
{\
kal_uint16 _stat;\
_stat = *(volatile kal_uint16 *)LCD_DUMMYADDR;\
_stat = *(volatile kal_uint16 *)LCD_DUMMYADDR;\
}
#endif
#ifdef MCU_52M
#define Dummy_Delay() \
{\
kal_uint16 _stat;\
_stat = *(volatile kal_uint16 *)LCD_DUMMYADDR;\
_stat = *(volatile kal_uint16 *)LCD_DUMMYADDR;\
_stat = *(volatile kal_uint16 *)LCD_DUMMYADDR;\
_stat = *(volatile kal_uint16 *)LCD_DUMMYADDR;\
}
#endif
#if (defined(MT6218B) || defined(MT6219)|| defined(MT6217)|| defined(MT6226)|| defined(MT6226M))
#ifdef LCD_CMD_DMA_MODE
#define LCD_SEND_DMA_CMD(n) \
{\
DISABLE_LCD_TRANSFER_COMPLETE_INT;\
SET_LCD_ROI_CTRL_NUMBER_OF_CMD(n);\
ENABLE_LCD_ROI_CTRL_CMD_FIRST;\
SET_LCD_ROI_WINDOW_SIZE(0,0);\
START_LCD_TRANSFER;\
while (LCD_IS_RUNNING) {};\
}
/*MAIN LCD driver S6D0110, used paralle0*/
#define LCD_CtrlWrite_S6D0110(_data) \
{\
SET_LCD_CMD_PARAMETER(0,LCD_CMD,(_data&0xFF00)>>8);\
Dummy_Delay();\
SET_LCD_CMD_PARAMETER(1,LCD_CMD,(_data&0xFF));\
LCD_SEND_DMA_CMD(2);\
}
#define LCD_DataWrite_S6D0110(_data) \
{\
SET_LCD_CMD_PARAMETER(0,LCD_DATA,(_data&0xFF00)>>8);\
Dummy_Delay();\
SET_LCD_CMD_PARAMETER(1,LCD_DATA,(_data&0xFF));\
LCD_SEND_DMA_CMD(2);\
}
#define LCD_RAMWrite_S6D0110(_data)\
{\
SET_LCD_CMD_PARAMETER(0,LCD_DATA,(_data&0xFF00)>>8);\
Dummy_Delay();\
SET_LCD_CMD_PARAMETER(1,LCD_DATA,(_data&0xFF));\
LCD_SEND_DMA_CMD(2);\
}
/*SUB LCD UC1682XHCY, used paralle1*/
#define LCD_CtrlWrite_UC1682XHCY(_data) \
{\
SET_LCD_CMD_PARAMETER(0,LCD_CMD,(_data&0xFF));\
LCD_SEND_DMA_CMD(1);\
}
#define LCD_DataWrite_UC1682XHCY(_data) \
{\
SET_LCD_CMD_PARAMETER(0,LCD_DATA,(_data&0xFF00)>>8);\
Dummy_Delay();\
SET_LCD_CMD_PARAMETER(1,LCD_DATA,(_data&0xFF));\
LCD_SEND_DMA_CMD(2);\
}
#define LCD_RAMWrite_UC1682XHCY(_data)\
{\
SET_LCD_CMD_PARAMETER(0,LCD_DATA,(_data&0xFF00)>>8);\
Dummy_Delay();\
SET_LCD_CMD_PARAMETER(1,LCD_DATA,(_data&0xFF));\
LCD_SEND_DMA_CMD(2);\
}
#else
/*MAIN LCD driver S6D0110, used paralle0*/
#define LCD_CtrlWrite_S6D0110(_data) \
{\
*(volatile kal_uint8 *)LCD_S6D0110_CTRL_ADDR = (_data & 0xFF00) >>8;\
Dummy_Delay();\
*(volatile kal_uint8 *)LCD_S6D0110_CTRL_ADDR = (_data & 0xFF);\
Dummy_Delay();\
}
#define LCD_DataWrite_S6D0110(_data) \
{\
*(volatile kal_uint8 *)LCD_S6D0110_DATA_ADDR = (_data & 0xFF00) >>8;\
Dummy_Delay();\
*(volatile kal_uint8 *)LCD_S6D0110_DATA_ADDR = (_data & 0xFF);\
Dummy_Delay();\
}
#define LCD_RAMWrite_S6D0110(_data) \
{\
*(volatile kal_uint8 *)LCD_S6D0110_DATA_ADDR = (_data & 0xFF00) >>8;\
Dummy_Delay();\
*(volatile kal_uint8 *)LCD_S6D0110_DATA_ADDR = (_data & 0xFF);\
Dummy_Delay();\
}
/*SUB LCD UC1682XHCY, used paralle1*/
#define LCD_CtrlWrite_UC1682XHCY(_data) \
{\
*(volatile kal_uint8 *)LCD_UC1682XHCY_CTRL_ADDR = (_data & 0xFF00) >>8;\
Dummy_Delay();\
*(volatile kal_uint8 *)LCD_UC1682XHCY_CTRL_ADDR = (_data & 0xFF);\
Dummy_Delay();\
}
#define LCD_DataWrite_UC1682XHCY(_data) \
{\
*(volatile kal_uint8 *)LCD_UC1682XHCY_DATA_ADDR = (_data & 0xFF00) >>8;\
Dummy_Delay();\
*(volatile kal_uint8 *)LCD_UC1682XHCY_DATA_ADDR = (_data & 0xFF);\
Dummy_Delay();\
}
#define LCD_RAMWrite_UC1682XHCY(_data) \
{\
*(volatile kal_uint8 *)LCD_UC1682XHCY_DATA_ADDR = (_data & 0xFF00) >>8;\
Dummy_Delay();\
*(volatile kal_uint8 *)LCD_UC1682XHCY_DATA_ADDR = (_data & 0xFF);\
Dummy_Delay();\
}
#endif /* LCD_CMD_DMA_MODE */
#endif
#define Write_REG_UC1682XHCY(reg, data) \
{\
LCD_CtrlWrite_UC1682XHCY(reg); \
LCD_DataWrite_UC1682XHCY(data); \
}
#endif
#ifdef WSX6396A
#define LCD_WSX6396A_CTRL_ADDR LCD_PARALLEL0_A0_LOW_ADDR
#define LCD_WSX6396A_DATA_ADDR LCD_PARALLEL0_A0_HIGH_ADDR
#define MAIN_LCD_CMD_ADDR LCD_WSX6396A_CTRL_ADDR
#define MAIN_LCD_DATA_ADDR LCD_WSX6396A_DATA_ADDR
#define MAIN_LCD_OUTPUT_FORMAT LCM_8BIT_16_BPP_RGB565_1
#define SET_LCD_PARALLEL_DATA_BUS_WIDTH SET_LCD_PARALLEL_8BIT_DATA_BUS
#define LCD_SSD1773_CTRL_ADDR LCD_PARALLEL1_A0_LOW_ADDR
#define LCD_SSD1773_DATA_ADDR LCD_PARALLEL1_A0_HIGH_ADDR
#define SUB_LCD_CMD_ADDR LCD_SSD1773_CTRL_ADDR
#define SUB_LCD_DATA_ADDR LCD_SSD1773_DATA_ADDR
#define SUB_LCD_OUTPUT_FORMAT LCM_8BIT_16_BPP_BGR565_1
/***********************WSX6396A********************************/
#if (defined(MT6218B) || defined(MT6219) || defined(MT6217) || defined(MT6226)|| defined(MT6226M))
#ifdef LCD_CMD_DMA_MODE
#define LCD_SEND_DMA_CMD(n) \
{\
DISABLE_LCD_TRANSFER_COMPLETE_INT;\
SET_LCD_ROI_CTRL_NUMBER_OF_CMD(n);\
ENABLE_LCD_ROI_CTRL_CMD_FIRST;\
SET_LCD_ROI_WINDOW_SIZE(0,0);\
START_LCD_TRANSFER;\
while (LCD_IS_RUNNING) {};\
}
#define LCD_CtrlWrite_WSX6396A(_data) \
{\
SET_LCD_CMD_PARAMETER(0,LCD_CMD,(_data & 0xFF00) >>8);\
SET_LCD_CMD_PARAMETER(1,LCD_CMD,(_data & 0xFF));\
LCD_SEND_DMA_CMD(2);\
}
#define LCD_DataWrite_WSX6396A(_data) \
{\
SET_LCD_CMD_PARAMETER(0,LCD_DATA,(_data & 0xFF00) >>8);\
SET_LCD_CMD_PARAMETER(1,LCD_DATA,(_data & 0xFF));\
LCD_SEND_DMA_CMD(2);\
}
#else
#define LCD_CtrlWrite_WSX6396A(_data) \
{ \
*(volatile kal_uint8 *)LCD_WSX6396A_CTRL_ADDR = (_data & 0xFF00) >>8;\
*(volatile kal_uint8 *)LCD_WSX6396A_CTRL_ADDR = (_data & 0xFF); \
}
#define LCD_DataWrite_WSX6396A(_data) \
{\
*(volatile kal_uint8 *)LCD_WSX6396A_DATA_ADDR = (_data & 0xFF00) >>8; \
*(volatile kal_uint8 *)LCD_WSX6396A_DATA_ADDR = (_data & 0xFF); \
}
#endif /* LCD_CMD_DMA_MODE */
#define LCD_RAMWrite_WSX6396A(_data) \
{\
*(volatile kal_uint8 *)LCD_WSX6396A_DATA_ADDR = ((_data&0xFF00)>>8);\
*(volatile kal_uint8 *)LCD_WSX6396A_DATA_ADDR= (_data&0xFF);\
}
#define LCD_CtrlWrite_SSD1773(_data) \
{ \
*(volatile kal_uint8 *) LCD_SSD1773_CTRL_ADDR= _data; \
}
#define LCD_DataWrite_SSD1773(_data) \
{ \
*(volatile kal_uint8 *)LCD_SSD1773_DATA_ADDR = _data;\
}
#define LCD_RAMWrite_SSD1773(_data) \
{\
*(volatile kal_uint8 *)LCD_SSD1773_DATA_ADDR = ((_data&0xFF00)>>8);\
*(volatile kal_uint8 *)LCD_SSD1773_DATA_ADDR= (_data&0xFF);\
}
#endif
#endif
#ifdef __SM261_LCD_SOLOMON_SSD1288__
#if (defined(MT6218B) || defined(MT6219) || defined(MT6217)||defined(MT6226)||defined(MT6227)|| defined(MT6226M))
#define LCD_DUMMYADDR 0x90000000
#define LCD_CTRLAddr LCD_PARALLEL0_A0_LOW_ADDR
#define LCD_DATAAddr LCD_PARALLEL0_A0_HIGH_ADDR
#define SET_LCD_PARALLEL_DATA_BUS_WIDTH SET_LCD_PARALLEL_8BIT_DATA_BUS
#define LCD_CMD_DMA_MODE
#endif
#ifdef MCU_13M
#define Dummy_Delay()
#endif
#ifdef MCU_26M
#define Dummy_Delay() \
{\
kal_uint16 _stat;\
_stat = *(volatile kal_uint16 *)LCD_DUMMYADDR;\
}
#endif
#ifdef MCU_39M
#define Dummy_Delay() \
{\
kal_uint16 _stat;\
_stat = *(volatile kal_uint16 *)LCD_DUMMYADDR;\
_stat = *(volatile kal_uint16 *)LCD_DUMMYADDR;\
}
#endif
#ifdef MCU_52M
#define Dummy_Delay() \
{\
kal_uint16 _stat;\
_stat = *(volatile kal_uint16 *)LCD_DUMMYADDR;\
_stat = *(volatile kal_uint16 *)LCD_DUMMYADDR;\
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -