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

📄 lcd_sw.h

📁 MTK平台的多种LCD驱动
💻 H
📖 第 1 页 / 共 3 页
字号:

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

#if (defined(MT6205B) || defined(MT6218))

		#define LCD_CtrlWrite_S1D15G27(_data)  \
		{\
			*(volatile kal_uint8 *)LCD_CTRLAddr = _data;\
  			LCD_delay_S1D15G27();\
		}\

		#define LCD_DataWrite_S1D15G27(_data)  \
		{\
			*(volatile kal_uint8 *)LCD_DATAAddr = _data;\
			LCD_delay_S1D15G27();\
		}\
         //

                #define LCD_RAMWrite_S1D15G27(_data)  \
		    {\
    			*(volatile kal_uint8 *)LCD_DATAAddr = (kal_uint8) ((_data&0xFF00)>>8);\
    			LCD_delay_S1D15G27();\
	    		*(volatile kal_uint8 *)LCD_DATAAddr = (kal_uint8) (_data&0xFF);\
		    	LCD_delay_S1D15G27();\
		    }

#endif/*MT6205B,MT6218*/

#if (defined(MT6218B) || defined(MT6219)|| defined(MT6217)) //20050413 yguangyong added 6217 option

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

		#define LCD_CtrlWrite_S1D15G27(_data) \
		{\
			SET_LCD_CMD_PARAMETER(0,LCD_CMD,_data);\
			LCD_SEND_DMA_CMD(1);\
		}

		#define LCD_DataWrite_S1D15G27(_data) \
		{\
			*((volatile unsigned char *) LCD_S1D15G27_DATA_ADDR) = (_data & 0xFF);\
			LCD_delay_S1D15G27();\
		}

		#define LCD_RAMWrite_S1D15G27(_data)\
		{\
			*((volatile unsigned char *) LCD_S1D15G27_DATA_ADDR) = (_data & 0xFF00) >>8;\
			*((volatile unsigned char *) LCD_S1D15G27_DATA_ADDR) = (_data & 0xFF);\
	        }
	#else
		#define LCD_CtrlWrite_S1D15G27(_data)  \
		{\
   	                *(volatile kal_uint8 *)LCD_S1D15G27_CTRL_ADDR = (_data & 0xFF);\
   	                LCD_delay_S1D15G27();\
		}
		#define LCD_DataWrite_S1D15G27(_data)  \
		{\
   	                *(volatile kal_uint8 *)LCD_S1D15G27_DATA_ADDR = (_data & 0xFF);\
 			LCD_delay_S1D15G27();\
		}
	        #define LCD_RAMWrite_S1D15G27(_data)  \
	       {\
		        *(volatile kal_uint8 *)LCD_S1D15G27_DATA_ADDR = (_data & 0xFF00) >>8;\
		        *(volatile kal_uint8 *)LCD_S1D15G27_DATA_ADDR = (_data & 0xFF);\
   	                LCD_delay_S1D15G27();\
	       }
	#endif /* LCD_CMD_DMA_MODE */
#endif

#endif  //#if (defined(__GD85_TCL_DRV_LCD_S1D15G27_WINTEK__))
/* END 2005-07-07 TCL-xjinming added for GD85-2 LCD_MAIN..... */




/*************************************************************/
/* Sub Macro                                                */
/*************************************************************/

/*************************************************************/
/* Epson Sub LCD(__GD85_2_TCL_DRV_LCD_L1F10289_EPSON__), 64k Color, 64x96 Parallel  */
/*************************************************************/
/* BEGIN 2005-03-15 TCL-xjinming added for GD85-2 LCD_SUB..... */
#if (defined (__GD85_2_TCL_DRV_LCD_L1F10289_EPSON__))
  #if ( (defined(MT6208)) || (defined(MT6218)) ||(defined(MT6218B)) ||(defined(MT6219)))
	#ifdef MCU_13M
      	  #define LCD_delay_L1F10289()
        #endif   /*MCU_13M*/

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

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

   #ifdef MCU_52M
 		#define LCD_delay_L1F10289() \
      		{\
         		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_L1F10289()
   #endif   /*MCU_13M*/
   #ifdef MCU_26M
      #define LCD_delay_L1F10289()    \
      {\
         kal_uint16 _stat;\
         _stat = *(volatile kal_uint16 *)LCD_DUMMYADDR;\
      }
   #endif   /*MCU_26M*/
#endif   /*MT6205B*/


#define LCD_CtrlWrite_L1F10289(_data) \
	{ \
		*(volatile kal_uint8 *) LCD_L1F10289_CTRL_ADDR= _data; \
		LCD_delay_L1F10289();\
	}

#define LCD_DataWrite_L1F10289(_data)  \
	{ \
		*(volatile kal_uint8 *)LCD_L1F10289_DATA_ADDR = _data;\
		LCD_delay_L1F10289();\
	}
	
#define LCD_RAMWrite_L1F10289(_data) \
	{\
  		*(volatile kal_uint8 *)LCD_L1F10289_DATA_ADDR = ((_data&0xFF00)>>8);\
  		*(volatile kal_uint8 *)LCD_L1F10289_DATA_ADDR= (_data&0xFF);\
  		LCD_delay_L1F10289();\
	}
#endif  //#if (defined (__GD85_2_TCL_DRV_LCD_L1F10289_EPSON__))
/* END 2005-03-15 TCL-xjinming added for GD85-2 LCD_SUB..... */


/*************************************************************/
/* Samsung Sub LCD(__GD85_TCL_DRV_LCD_ST7565_SAMSUNG__), (Mono), Serial i/o       */
/*************************************************************/

//#ifdef __GD85_TCL_DRV_LCD_ST7565_SAMSUNG__   //modified by xjinming for TRULY LCD
#if (defined(__GD85_TCL_DRV_LCD_ST7565_LINDA__) || defined(__GD85_TCL_DRV_LCD_ST7565_TRULY__))

#if ( (defined(MT6205B)) || (defined(MT6218)) )
   
   #define LCD_CtrlWrite_ST7565(_data)\
   {\
      while(!(DRV_Reg(LCD_SSTA) & LCD_SSTA_EMP0));\
      DRV_WriteReg(LCD_DATACS0_A0LOW,_data);\
   }
   
   #define LCD_DataWrite_ST7565(_data)\
   {\
      while(!(DRV_Reg(LCD_SSTA) & LCD_SSTA_EMP0));\
      DRV_WriteReg(LCD_DATACS0_A0HIGH,_data);\
   }
   
   #define LCD_CtrlWrite1_ST7565(_data)\
   {\
      while(!(DRV_Reg(LCD_SSTA) & LCD_SSTA_EMP1));\
      DRV_WriteReg(LCD_DATACS1_A0LOW,_data);\
   }

   #define LCD_DataWrite1_ST7565(_data)\
   {\
      while(!(DRV_Reg(LCD_SSTA) & LCD_SSTA_EMP1));\
      DRV_WriteReg(LCD_DATACS1_A0HIGH,_data);\
   }
   
   #define LCD_ReadData_ST7565(_data)	NULL
   
#endif	/* MT6205B,MT6218 */

#if ( (defined(MT6205)) || (defined(MT6208)) || (defined(FPGA)) )
   #define LCD_CtrlWrite_ST7565(_data)  \
   {\
      while((DRV_Reg(LCD_COUNT) >= 7));\
      DRV_WriteReg(LCD_DATA_A0LOW,_data);\
   }
   
   #define LCD_DataWrite_ST7565(_data)  \
   {\
      while((DRV_Reg(LCD_COUNT) >= 7));\
      DRV_WriteReg(LCD_DATA_A0HIGH,_data);\
   }
   
   #define LCD_ReadData_ST7565(_data)	NULL
   
#endif	/* (MT6205, MT6208, FPGA) */

#if ( (defined(MT6218B))||(defined(MT6217)))//20050413 yguangyong added 6217 option
  /* Defined Sub_LCD Instruction Macro */
	#ifdef DUAL_LCD
		#define LCD_CtrlWrite_ST7565(_data)  \
		{\
			DRV_WriteReg(LCD_ST7565_CTRL_ADDR,_data);\
			LCD_delay_ST7565();\
		}
		//*(volatile kal_uint8 *) LCD_ST7565_CTRL_ADDR= _data;
		//LCD_delay_ST7565();
		#define LCD_DataWrite_ST7565(_data)  \
		{\
			DRV_WriteReg(LCD_ST7565_DATA_ADDR,_data);\
			LCD_delay_ST7565();\
		}
		//*(volatile kal_uint8 *)LCD_ST7565_DATA_ADDR = _data;
		//LCD_delay_ST7565();
		#define LCD_RAMWrite_ST7565(_data)  \
		{\
			*((volatile unsigned char *) LCD_ST7565_DATA_ADDR) = (_data & 0xFF00) >>8;\
			*((volatile unsigned char *) LCD_ST7565_DATA_ADDR) = (_data & 0xFF);\
			LCD_delay_ST7565();\
		}
	#endif 
#endif	/* (MT6218B) */


#endif //#if (defined(__GD85_TCL_DRV_LCD_ST7565_LINDA__) || defined(__GD85_TCL_DRV_LCD_ST7565_TRULY__))




/* Linda S6B33B2 ***********************************************************/
/* 96x64 (64k color), Parallel i/o, COG Type   (SAMSUNG chip S6B33B2)      */
/***************************************************************************/
#if (defined( __GD85_2_TCL_DRV_LCD_S6B33B2_LINDA__))

  #if ( (defined(MT6208)) || (defined(MT6218)) ||(defined(MT6218B)) ||(defined(MT6219))||(defined(MT6217))) //20050415 yguangyong added 6217
	#ifdef MCU_13M
      	  #define LCD_delay_S6B33B2()
        #endif   /*MCU_13M*/

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

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

   #ifdef MCU_52M
 		#define LCD_delay_S6B33B2() \
      		{\
         		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_S6B33B2()
   #endif   /*MCU_13M*/
   #ifdef MCU_26M
      #define LCD_delay_S6B33B2()    \
      {\
         kal_uint16 _stat;\
         _stat = *(volatile kal_uint16 *)LCD_DUMMYADDR;\
      }
   #endif   /*MCU_26M*/
#endif   /*MT6205B*/


#define LCD_CtrlWrite_S6B33B2(_data) \
	{ \
		*(volatile kal_uint8 *) LCD_S6B33B2_CTRL_ADDR= _data; \
		LCD_delay_S6B33B2();\
	}

#define LCD_DataWrite_S6B33B2(_data)  \
	{ \
		*(volatile kal_uint8 *)LCD_S6B33B2_DATA_ADDR = _data;\
		LCD_delay_S6B33B2();\
	}
	
#define LCD_RAMWrite_S6B33B2(_data) \
	{\
  		*(volatile kal_uint8 *)LCD_S6B33B2_DATA_ADDR = ((_data&0xFF00)>>8);\
  		LCD_delay_S6B33B2();\
  		*(volatile kal_uint8 *)LCD_S6B33B2_DATA_ADDR= (_data&0xFF);\
  		LCD_delay_S6B33B2();\
	}



#endif   //#if (defined( __GD85_2_TCL_DRV_LCD_S6B33B2_LINDA__))





#if (defined (__GD85_1_TCL_DRV_LCD_SH1101A_RITDISPLAY__))


  #if ( (defined(MT6208)) || (defined(MT6218)) ||(defined(MT6218B)) ||(defined(MT6219))||(defined(MT6217))) //20050415 yguangyong added 6217
	#ifdef MCU_13M
      	  #define LCD_delay_SH1101A()
        #endif   /*MCU_13M*/

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

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

   #ifdef MCU_52M
 		#define LCD_delay_SH1101A() \
      		{\
         		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_SH1101A()
   #endif   /*MCU_13M*/
   #ifdef MCU_26M
      #define LCD_delay_SH1101A()    \
      {\
         kal_uint16 _stat;\
         _stat = *(volatile kal_uint16 *)LCD_DUMMYADDR;\
      }
   #endif   /*MCU_26M*/
#endif   /*MT6205B*/


#define LCD_CtrlWrite_SH1101A(_data) \
	{ \
		*(volatile kal_uint8 *) LCD_SH1101A_CTRL_ADDR= _data; \
		LCD_delay_SH1101A();\
	}

#define LCD_DataWrite_SH1101A(_data)  \
	{ \
		*(volatile kal_uint8 *)LCD_SH1101A_DATA_ADDR = _data;\
		LCD_delay_SH1101A();\
	}
	
#define LCD_RAMWrite_SH1101A(_data) \
	{\
  		*(volatile kal_uint8 *)LCD_SH1101A_DATA_ADDR = ((_data&0xFF00)>>8);\
  		LCD_delay_SH1101A();\
  		*(volatile kal_uint8 *)LCD_SH1101A_DATA_ADDR= (_data&0xFF);\
  		LCD_delay_SH1101A();\
	}




#endif






#endif   /*_LCD_SW_H*/

⌨️ 快捷键说明

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