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

📄 osd2csl.c

📁 T108 LCD屏的DEMO源代码!需要的就下吧
💻 C
字号:
/* ##########################################################################
   #                      Terawins Inc. Company                             #
   #                 Copyright (c) 2005, All rights reserved                #
   #                                                                        #
   #  All rights reserved. Reproduction in whole or in parts is prohibited  #
   #  without the prior written consent.                                    #
   ########################################################################## */
   
////////////////////////////////////////////////////////////////////////////////
//                                                                            //
//                          LCD Application Firmware                          //
// ========================================================================== //
//                                                                            //
//  Module   : OSD2CSL.c                                                      //
//                                                                            //
//  Purpose  : T128/T108 OSD 2 Chip support libary.                           //
//                                                                            //
//  Version  : 1.00                                                           //
//                                                                            //
//  Compiler : Keil 8051 C Compiler v8.05a                                    //
//                                                                            //
//  Reference: [1] Keil C51 Compiler User's Guide 09.2001, Keil Software, Inc.//
//                                                                            //
// ========================================================================== //
//                                                                            //
//  Date        Author        Reason (what and why)                           //
//  ----------- ------------- ----------------------------------------------  //
//  2007/02/07  Kevin Hsu     				                                  //
//  																	      //
//                                                                            //
////////////////////////////////////////////////////////////////////////////////
#include "Common.h"
#include "Global.h"
#include "ICControl.h"	
#include "System.h"
#include "TWICreg.h"
#include "OSD2_Define.h"
#include "OSD2CSL.h"
//#include "ICON2BP12X18.H"
#include "Icon4BP12x12.H"
#include "IconJigsaw.h"
	  
#ifdef ICON2BP
//=============================================================================
//    Function  : void OSD2Show2BPIcon(uCHAR *string,uCHAR x,uCHAR y,
//				  uCHAR cBlink,uCHAR HVScale,uCHAR MenuIndex)
//    Prupose   : Show OSD2 2BPP 
//    Arguments : uCHAR *string
//				  uCHAR x
//				  uCHAR y
//				  uCHAR cBlink
//				  uCHAR HVScale
//				  uCHAR MenuIndex	
//    Returns   : --
//    External  : --    --                  --
//-----------------------------------------------------------------------------
//  Detail Description:
//  -------------------
//  Show OSD2 2BPP
//  --------------	    
//=============================================================================
void OSD2Show2BPIcon(uCHAR *string,uCHAR x,uCHAR y,uCHAR cBlink,uCHAR HVScale,uCHAR MenuIndex)
{
	uCHAR *pString= string+1;	
	uCHAR i,j,k; 
	//uCHAR iTeststr[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,EOL};  
	//pString = iTeststr;
	k=0;		
	if(MenuIndex == MENU1)		
	{		 
		while((*pString)!= EOL)
		{
			//~Set RAtt_C~//
			OSD2SetRamAddr(Menu1StrAdr+(Menu1Width+4)*y+3);
			OSD2SetRamData(((0x0000+HVScale)<<6)|(Menu1Width));	
			OSD2SetRamAddr(Menu1StrAdr+(Menu1Width+4)*y+x+4);
			j=0;   
			k=x;
			//~Stuff Strings~//
			while(((*pString) != EOL)&&(k<Menu1Width)&&(j<string[0]))
			{
				OSD2SetRamData(0x0000|((uWORD)(cBlink)<<13)|((uWORD)(IconColorIndex[(*pString)]&0x0F)<<9)|(*pString++));
				k++;
				j++;
			}
			y++;
		}
	}
	else if(MenuIndex==MENU2)
	{
		//~Set RAtt_C~//
		OSD2SetRamAddr(Menu2StrAdr+(Menu2Width+4)*y+3);
		OSD2SetRamData(((0x0000+HVScale)<<6)|(Menu2Width));	
		OSD2SetRamAddr(Menu2StrAdr+(Menu2Width+4)*y+x+4);
		k=x;
		while((*pString) != EOL)
		{
			//~Stuff Strings~//
			while(((*pString) != EOL)&&(k<Menu2Width)&&(j<string[0]))
			{
				OSD2SetRamData(0x0000|((uWORD)(cBlink)<<13)|((uWORD)(IconColorIndex[(*pString)]&0x0F)<<9)|(*pString++));
				k++;
				j++;
			}
			y++;
		}
	}	  

}
#endif //ICON2BP


#ifdef ICON4BP	
//=============================================================================
//    Function  : OSD2Show4BPIcon(uCHAR *string,uCHAR x,uCHAR y,uCHAR cBlink,
//								  uCHAR HVScale,uCHAR Color, uCHAR MenuIndex)
//    Prupose   : Show OSD2 4BPP 
//    Arguments : uCHAR *string
//				  uCHAR x
//				  uCHAR y
//				  uCHAR cBlink		  <---0: No Blink
//				  uCHAR HVScale		  
//				  uCHAR Color		  <---0: For Default IconColorHighByte.  
//									      1~15: For user define. 
//				  uCHAR MenuIndex	  <---1: For Menu 1.   2: For Menu 2.
//    Returns   : --
//    External  : --    --                  --
//-----------------------------------------------------------------------------
//  Detail Description:
//  -------------------
//  Show OSD2 4BPP
//  --------------	    
//=============================================================================
void OSD2Show4BPIcon(uCHAR *string,uCHAR x,uCHAR y,uCHAR cBlink,uCHAR HVScale,uCHAR Color, uCHAR MenuIndex)
{
	uCHAR Char= *(string+2);	
	uCHAR j,k; 				
	uCHAR V;		
	if(MenuIndex == MENU1)
	{
		for(V=0; V<string[1];V++)
		{			
			//~Set RAtt_C~//
			OSD2SetRamAddr(OSD2Menu1StrAdr+(OSD2Menu1Width+4)*y+3);
			OSD2SetRamData(((0x0000+HVScale)<<6)|(OSD2Menu1Width));	
			OSD2SetRamAddr(OSD2Menu1StrAdr+(OSD2Menu1Width+4)*y+x+4);
			//~Stuff Strings~//
			j=0;   
			k=x;
			while((k<OSD2Menu1Width)&&(j<string[0]))	 			
			{
				if(Color)
					OSD2SetRamData(0x0000|((uWORD)(cBlink)<<13)|((uWORD)(Color&0x0F)<<9)|(Char++));
				else
					OSD2SetRamData(0x0000|((uWORD)(cBlink)<<13)|((uWORD)(IconColorHighByte[Char]&0x0F)<<9)|(Char++));
				k++;
				j++;
			}			 
			y++;
		}
	}
	else if(MenuIndex == MENU2)
	{
		for(V=0; V<string[1];V++)
		{			
			//~Set RAtt_C~//
			OSD2SetRamAddr(OSD2Menu2StrAdr+(OSD2Menu2Width+4)*y+3);
			OSD2SetRamData(((0x0000+HVScale)<<6)|(OSD2Menu2Width));	
			OSD2SetRamAddr(OSD2Menu2StrAdr+(OSD2Menu2Width+4)*y+x+4);
			//~Stuff Strings~//
			j=0;   
			k=x;
			while((k<OSD2Menu2Width)&&(j<string[0]))
			{
				if(Color)
					OSD2SetRamData(0x0000|((uWORD)(cBlink)<<13)|((uWORD)(Color&0x0F)<<9)|(Char++));
				else
					OSD2SetRamData(0x0000|((uWORD)(cBlink)<<13)|((uWORD)(IconColorHighByte[Char]&0x0F)<<9)|(Char++));
				k++;
				j++;
			}			 
			y++;
		}
	}
}
#endif //ICON4BP


/*void OSD2PatternFillCtrl(uCHAR Enable,uWORD HStartPos, uWORD HEndPos, uWORD VStartPos, uWORD VEndPos)
{
	IC_WritByte(TWIC_P0,OSD_CFG_INDEX,OSD_PT_CTRL);		
	OSD2CfgWr(OSD_PT_CTRL,IC_ReadByte(TWIC_P0,OSD_CFG_DATA)&((Enable<<7)|0x7F));
	OSD2CfgWr(OSD_PT_HSTART_LSB,HStartPos&0x00FF);
	OSD2CfgWr(OSD_PT_HSTART_MSB,HStartPos>>8);
	OSD2CfgWr(OSD_PT_VSTART_LSB,VStartPos&0x00FF);
	OSD2CfgWr(OSD_PT_VSTART_MSB,VStartPos>>8);
	OSD2CfgWr(OSD_PT_HEND_LSB,HEndPos&0x00FF);
	OSD2CfgWr(OSD_PT_HEND_MSB,HEndPos>>8);
	OSD2CfgWr(OSD_PT_VEND_LSB,VEndPos&0x00FF);
	OSD2CfgWr(OSD_PT_VEND_MSB,VEndPos>>8);
} */

void OSD2Menu1Enable(void)
{
	OSD2CfgWr(OSD_MENU1_ENABLE,0x80);
	IC_WritByte(TWIC_P0,0xE2,0x11);
}
void OSD2Menu2Enable(void)
{
	OSD2CfgWr(OSD_MENU2_ENABLE,0x80);
	IC_WritByte(TWIC_P0,0xE2,0x11);
} 
void OSD2Enable(void)
{
	OSD2CfgWr(OSD_CTRL,0x80);
	IC_WritByte(TWIC_P0,0xE2,0x11);
}

void OSD2Disable(void)
{
	OSD2CfgWr(OSD_CTRL,0x00);
}	
void OSD2ClearSRam(void)
{
	OSD2CfgWr(OSD_BLK_WRT_LSB,0x00);
	OSD2CfgWr(OSD_BLK_WRT_MSB,0x00);
	OSD2CfgWr(OSD_BLK_WRT_SADD_LSB,0x00);
	OSD2CfgWr(OSD_BLK_WRT_SADD_MSB,0x00);
	OSD2CfgWr(OSD_BLK_WRT_LENGTH,0xFF);
	OSD2CfgWr(OSD_BLK_WRT_CTR,0x9f);
}

⌨️ 快捷键说明

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