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

📄 lcd_sw.h

📁 这个是MTK手机平台上面的LCD
💻 H
📖 第 1 页 / 共 4 页
字号:
		         _stat = *(volatile kal_uint16 *)LCD_DUMMYADDR;\
		         _stat = *(volatile kal_uint16 *)LCD_DUMMYADDR;\
	      }
	#endif  

	#define LCD_SSD1288_CTRL_ADDR		LCD_PARALLEL0_A0_LOW_ADDR
	#define LCD_SSD1288_DATA_ADDR		LCD_PARALLEL0_A0_HIGH_ADDR
	#define MAIN_LCD_CMD_ADDR			LCD_SSD1288_CTRL_ADDR
	#define MAIN_LCD_DATA_ADDR		LCD_SSD1288_DATA_ADDR			
	#define MAIN_LCD_OUTPUT_FORMAT	LCM_8BIT_16_BPP_RGB565_1
		
	#if (defined(MT6218B) || defined(MT6219) || defined(MT6217)||(MT6226)|| defined(MT6226M))
		#ifdef LCD_CMD_DMA_MODE

			#define LCD_SEND_DMA_CMD(n) \
			{\
				while (LCD_IS_RUNNING) {};\
				DISABLE_LCD_TRANSFER_COMPLETE_INT;\
				DISABLE_ALL_LCD_LAYER_WINDOW;\
				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_SSD1288(_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_SSD1288(_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
				
			#define LCD_CtrlWrite_SSD1288(_data)  \
			{\
				*(volatile kal_uint8 *) LCD_SSD1288_CTRL_ADDR= (_data&0xFF00)>>8;\
				*(volatile kal_uint8 *) LCD_SSD1288_CTRL_ADDR= (_data&0xFF);\
				Dummy_Delay();\
			}


			#define LCD_DataWrite_SSD1288(_data)  \
			{\
				*(volatile kal_uint8 *) LCD_SSD1288_DATA_ADDR = (_data&0xFF00)>>8;\
				*(volatile kal_uint8 *) LCD_SSD1288_DATA_ADDR = (_data&0xFF);\
				Dummy_Delay();\
			}
					
		#endif // LCD_CMD_DMA_MODE 
		
		#define Write_REG_SSD1288(_reg,_data)\
		{\
			LCD_CtrlWrite_SSD1288(_reg);\
			LCD_DataWrite_SSD1288(_data); \
		}

	#endif

	#endif

// ==============================================================================
// SAMSUNG   128X160
// Chip: S6B33BC, MPU: W78LE516
// ==============================================================================
#ifdef __SM261_LCD_SUMSUNG_S6B33BC__
	   #define LCD_S6B33BC_CTRL_ADDR	   	LCD_PARALLEL0_A0_LOW_ADDR
	   #define LCD_S6B33BC_DATA_ADDR	   	LCD_PARALLEL0_A0_HIGH_ADDR
	   #define MAIN_LCD_CMD_ADDR		   			LCD_S6B33BC_CTRL_ADDR
	   #define MAIN_LCD_DATA_ADDR		   		LCD_S6B33BC_DATA_ADDR
	   #define MAIN_LCD_OUTPUT_FORMAT	   	LCM_8BIT_16_BPP_RGB565_1
	#define LCD_DUMMYADDR   				0x90000000
	#define SET_LCD_PARALLEL_DATA_BUS_WIDTH SET_LCD_PARALLEL_8BIT_DATA_BUS
	#define LCD_CMD_DMA_MODE

	  #if ( (defined(MT6208)) || (defined(MT6218)) ||(defined(MT6226))  ||(defined(MT6217))||(defined(MT6219))|| defined(MT6226M))
		#ifdef MCU_13M
	      	  #define LCD_delay_S6B33BC()
	        #endif   /*MCU_13M*/

		   #ifdef MCU_26M
		    	#define LCD_delay_S6B33BC() \
		 	{\
			         kal_uint16  _stat;\
			 	 _stat = *(volatile kal_uint16  *)LCD_DUMMYADDR;\
		 	 }
		   #endif   /*MCU_26M*/

		   #ifdef MCU_39M
		 	#define LCD_delay_S6B33BC() \
		    	{\
		       		kal_uint16  _stat;\
		       		_stat = *(volatile kal_uint16  *)LCD_DUMMYADDR;\
	       			_stat = *(volatile kal_uint16  *)LCD_DUMMYADDR;\
		 	}
		   #endif   /*MCU_39M*/

		   #ifdef MCU_52M
	 		#define LCD_delay_S6B33BC() \
      			{\
         			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   /*MCU_52M*/
	#endif   /*MT6208*/

	#ifdef MT6205B
	   #ifdef MCU_13M
	      #define LCD_delay_S6B33BC()
	   #endif   /*MCU_13M*/
	   #ifdef MCU_26M
	      #define LCD_delay_S6B33BC()    \
	      {\
	         kal_uint16 _stat;\
	         _stat = *(volatile kal_uint16 *)LCD_DUMMYADDR;\
	      }
	   #endif   /*MCU_26M*/
	#endif   /*MT6205B*/

		#define LCD_CtrlWrite_S6B33BC(_data) \
		{ \
			*(volatile kal_uint8 *) LCD_S6B33BC_CTRL_ADDR= _data; \
			LCD_delay_S6B33BC();\
		}

		#define LCD_DataWrite_S6B33BC(_data)  \
		{ \
			*(volatile kal_uint8 *)LCD_S6B33BC_DATA_ADDR = _data;\
			LCD_delay_S6B33BC();\
		}
					
		#define LCD_RAMWrite_S6B33BC(_data) \
		{\
	  		*(volatile kal_uint8 *)LCD_S6B33BC_DATA_ADDR = ((_data&0xFF00)>>8);\
	  		LCD_delay_S6B33BC();\
	  		*(volatile kal_uint8 *)LCD_S6B33BC_DATA_ADDR= (_data&0xFF);\
	  		LCD_delay_S6B33BC();\
		}

#endif

//================HIMAX HX8312A 240x320 2.2' TFT LCD ========================================
#ifdef __SM261_LCD_HIMAX_HX8312__
	#if (defined(MT6218B) || defined(MT6219) || defined(MT6217)||defined(MT6226)||defined(MT6227)|| defined(MT6226M))

		#define LCD_16BIT_MODE
		#define LCD_DUMMYADDR   							0x90000000
		#define LCD_CTRLAddr								LCD_PARALLEL0_A0_LOW_ADDR
		#define LCD_DATAAddr								LCD_PARALLEL0_A0_HIGH_ADDR
		#ifdef LCD_16BIT_MODE
		#define SET_LCD_PARALLEL_DATA_BUS_WIDTH 		SET_LCD_PARALLEL_16BIT_DATA_BUS
		#else
		#define SET_LCD_PARALLEL_DATA_BUS_WIDTH 		SET_LCD_PARALLEL_8BIT_DATA_BUS
		#endif
		
		#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;\
		         _stat = *(volatile kal_uint16 *)LCD_DUMMYADDR;\
		         _stat = *(volatile kal_uint16 *)LCD_DUMMYADDR;\
	      }
	#endif  

	#define LCD_HX8312_CTRL_ADDR			LCD_PARALLEL0_A0_LOW_ADDR
	#define LCD_HX8312_DATA_ADDR			LCD_PARALLEL0_A0_HIGH_ADDR
	#define MAIN_LCD_CMD_ADDR			LCD_HX8312_CTRL_ADDR
	#define MAIN_LCD_DATA_ADDR			LCD_HX8312_DATA_ADDR			
	#ifdef LCD_16BIT_MODE
	#define MAIN_LCD_OUTPUT_FORMAT        	LCM_16BIT_16_BPP_RGB565_1
	#else
	#define MAIN_LCD_OUTPUT_FORMAT        	LCM_8BIT_16_BPP_RGB565_1
	#endif
		
	#if (defined(MT6218B) || defined(MT6219) || defined(MT6217)||(MT6226)|| defined(MT6226M))
		#ifdef LCD_CMD_DMA_MODE

			#define LCD_SEND_DMA_CMD(n) \
			{\
				while (LCD_IS_RUNNING) {};\
				DISABLE_LCD_TRANSFER_COMPLETE_INT;\
				DISABLE_ALL_LCD_LAYER_WINDOW;\
				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_16BIT_MODE
			#define LCD_CtrlWrite_HX8312(_data) \
			{\
				SET_LCD_CMD_PARAMETER(0, LCD_CMD, _data);\
				LCD_SEND_DMA_CMD(1);\
			}

			#define LCD_DataWrite_HX8312(_data) \
			{\
				SET_LCD_CMD_PARAMETER(0, LCD_DATA, _data);\
				LCD_SEND_DMA_CMD(1);\
			}
			#else
			#define LCD_CtrlWrite_HX8312(_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_HX8312(_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);\
			}
			#endif
		#else
			#ifdef LCD_16BIT_MODE
			#define LCD_CtrlWrite_HX8312(_data)  \
			{\
				*(volatile kal_uint8 *) LCD_HX8312_CTRL_ADDR= (_data);\
				Dummy_Delay();\
			}


			#define LCD_DataWrite_HX8312(_data)  \
			{\
				*(volatile kal_uint8 *) LCD_HX8312_DATA_ADDR = (_data);\
				Dummy_Delay();\
			}
			#else
			#define LCD_CtrlWrite_HX8312(_data)  \
			{\
				*(volatile kal_uint8 *) LCD_HX8312_CTRL_ADDR= (_data&0xFF00)>>8;\
				*(volatile kal_uint8 *) LCD_HX8312_CTRL_ADDR= (_data&0xFF);\
				Dummy_Delay();\
			}


			#define LCD_DataWrite_HX8312(_data)  \
			{\
				*(volatile kal_uint8 *) LCD_HX8312_DATA_ADDR = (_data&0xFF00)>>8;\
				*(volatile kal_uint8 *) LCD_HX8312_DATA_ADDR = (_data&0xFF);\
				Dummy_Delay();\
			}
			#endif
		#endif // LCD_CMD_DMA_MODE 
		
		#define Write_REG_HX8312(_req)\
		{\
				LCD_CtrlWrite_HX8312(_req);\
		}

	#endif

#endif




//===========================================================================
//
//   	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

		#define LCD_CMD_DMA_MODE

		#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__

	#if defined(__MIKI_DRV_LCD_LG_LGDP4216__)
		#define LCD_LGDP4216_CTRL_ADDR					LCD_PARALLEL0_A0_LOW_ADDR
		#define LCD_LGDP4216_DATA_ADDR					LCD_PARALLEL0_A0_HIGH_ADDR
		#define MAIN_LCD_CMD_ADDR						LCD_LGDP4216_CTRL_ADDR
		#define MAIN_LCD_DATA_ADDR						LCD_LGDP4216_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

		
	#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;\

⌨️ 快捷键说明

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