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

📄 osd2_init.c

📁 T118+AU7驱动程序完整版
💻 C
字号:
#include <reg51.h>
#include "common.h"


//#include "Icon4BP12x12.h"
//#include "malataOSD2_070806.h"
#include "debug_icon.h"
#include "OSD_def.h"
#include "OSD2_CLS.h"

uCHAR code *IconsStart;

uCHAR code OSD2BGNDLutData[6]={  
//0x01,0x02,0x03,0x05,0x06,0x07  //6 background remap colors
  0xFA,0xFB,0xFC,0xFD,0xFE,0xFF,
};

void OSD2LoadColor()
{
	//Main LUT
	OSD2CfgWr(OSD_COLOR_LUT_ADR_PORT,0x00);
	I2CWriteByte(TW803_P0,OSD2_CFG_INDEX,0x09);
	twdWr_Burst_A(OSD2_CFG_DATA);
 	for(m_wBuff[0] =0;m_wBuff[0]<COLORTBLNUM;m_wBuff[0]++)
	{
		twdWr_Burst_D(Icon4BPColorTable[m_wBuff[0]]);
	}
	twdWr_Burst_P();
	//2BP remap LUT
	OSD2CfgWr(OSD_COLOR_LUT_ADR_PORT,0x80);
	I2CWriteByte(TW803_P0,OSD2_CFG_INDEX,0x09);
	for(m_wBuff[0]=0;m_wBuff[0]<18;m_wBuff[0]++)
	{
		I2CWriteByte(TW803_P0,OSD2_CFG_DATA,0);
		I2CWriteByte(TW803_P0,OSD2_CFG_DATA,0);
		I2CWriteByte(TW803_P0,OSD2_CFG_DATA,0);
	}
	//0x110--OSD2BGND Color Remap LUT
	OSD2CfgWr(OSD_COLOR_LUT_ADR_PORT,0x88);
	I2CWriteByte(TW803_P0,OSD2_CFG_INDEX,0x09);	
	for(m_wBuff[0] = 0; m_wBuff[0] < 6;m_wBuff[0]++)  
	{
		I2CWriteByte(TW803_P0,OSD2_CFG_DATA,OSD2BGNDLutData[m_wBuff[0]]);
	} 
}

void OSD2Load4BPFont(void)
{
	OSD2SetRamAddr(OSD2Icon4BPDataStrAdr);
 	twdWr_Burst_A(OSD2_RAM_DL);
	if(IconWidth==12)
	{
		for(m_wBuff[0]=0;m_wBuff[0]<ICON4BPNUM;m_wBuff[0]++)
		{
			for(m_wBuff[1]=0; m_wBuff[1]<(IconHeight); m_wBuff[1]++)
			{
				m_wBuff[2] = (m_wBuff[0]* IconHeight+m_wBuff[1])*6;
				twdWr_Burst_D(IconsStart[m_wBuff[2] +1]);
				twdWr_Burst_D(IconsStart[m_wBuff[2]]);
				twdWr_Burst_D(IconsStart[m_wBuff[2] +3]);
				twdWr_Burst_D(IconsStart[m_wBuff[2] +2]);
				twdWr_Burst_D(IconsStart[m_wBuff[2] +5]);
				twdWr_Burst_D(IconsStart[m_wBuff[2] +4]);
			}
		}
	}
 	twdWr_Burst_P();
}

void OSD2InItClearMenu(uCHAR MenuIndex)
{
	uCHAR i=0; 
	if(MenuIndex == MENU1)
	{	OSD2SetRamAddr(OSD2Menu1StrAdr+(OSD2Menu1Width+4)*i);
		twdWr_Burst_A(OSD2_RAM_DL);
		for(i=0; i<OSD2Menu1Height; i++)
		{ 	
			//~Set RAtt_V~//
			if(i==0)
				OSDSetRamDataBuest(0x4000|OSD2Menu1StartY); 
		 	else
				OSDSetRamDataBuest(0xE001);
			//~Set RAtt_H~//
			OSDSetRamDataBuest(0x6000|OSD2Menu1StartX);
			//~Set RAtt_A~//
			OSDSetRamDataBuest(0xD000|0x0003);

			//~Set RAtt_C~//
			OSDSetRamDataBuest(0x0000|(OSD2Menu1Width));  	
			m_wBuff[0]=0;
			while(m_wBuff[0]<OSD2Menu1Width)
			{
				OSDSetRamDataBuest(0x0000|((uWORD)(0&0x0F)<<9)|(122));
				m_wBuff[0]++;
			} 
			
		} 
		twdWr_Burst_P();
	}
	else if(MenuIndex == MENU2)
	{
		OSD2SetRamAddr(OSD2Menu2StrAdr+(OSD2Menu2Width+4)*i);
		twdWr_Burst_A(OSD2_RAM_DL);
		for(i=0; i<OSD2Menu2Height; i++)
		{
			
			//~Set RAtt_V~//
			if(i==0)
				OSDSetRamDataBuest(0x4000|OSD2Menu2StartY); 
		 	else
				OSDSetRamDataBuest(0xE001);
			//~Set RAtt_H~//
			OSDSetRamDataBuest(0x6000|OSD2Menu2StartX);
			//~Set RAtt_A~//
			OSDSetRamDataBuest(0xD000|0x0003);
			//~Set RAtt_C~//
			OSDSetRamDataBuest(0x0000|(OSD2Menu2Width));  	
			m_wBuff[0]=0;
			while(m_wBuff[0]<OSD2Menu2Width)
			{
				OSDSetRamDataBuest(0x0000|((uWORD)(0&0x0F)<<9)|(35));
				m_wBuff[0]++;
			} 
			
		}	
	    twdWr_Burst_P();
	}
}

void OSD2Init(void)
{
	OSD2CfgWr(OSD_CHAR_FONT_SIZE,(0xC0)|(0x00)|IconHeight);		//Set Font Size
	OSD2CfgWr(OSD_CHAR2BP_FONT_INDEX,Icon2BPIndexStr>>1);		//Set Char2BP Font Index Base
	OSD2CfgWr(OSD_CHAR4BP_FONT_INDEX,Icon4BPIndexStr>>1);		//Set Char4BP Font Index Base
	OSD2CfgWr(OSD_CHAR2BP_FONT_MEMADD_L,OSD2Icon2BPDataStrAdr&0x00FF);	//Set Char2BP Font Memory Base Address
	OSD2CfgWr(OSD_CHAR2BP_FONT_MEMADD_M,OSD2Icon2BPDataStrAdr>>8);
	OSD2CfgWr(OSD_CHAR4BP_FONT_MEMADD_L,OSD2Icon4BPDataStrAdr&0x00FF);	//Set Char4BP Font Memory Base Address
	OSD2CfgWr(OSD_CHAR4BP_FONT_MEMADD_M,OSD2Icon4BPDataStrAdr>>8);
	OSD2CfgWr(OSD_GLOBAL_ALPHA_BLENDING,0x10);		//Set Globa Alpha Blending Control
	OSD2CfgWr(OSD_BSH_COLOR_HIGHBIT,0x20);		//Set Border/Shadow/Char1BP Color High Bits Offset
	OSD2CfgWr(OSD_FONTROM_INDEX,ROMICONIndexStr>>1);	//Set Build-in Rom Font Index Base
	
	OSD2ClearSRam();

	//~Menue-1 Setting. ~//
	OSD2CfgWr(OSD_MENU1_ENABLE,0x00);
	OSD2CfgWr(OSD_MENU1_START_ADR_L,OSD2Menu1StrAdr&0x00FF);
	OSD2CfgWr(OSD_MENU1_START_ADR_M,OSD2Menu1StrAdr>>8);
	OSD2CfgWr(OSD_MENU1_END_ADR_L,OSD2Menu1EndAdr&0x00FF);
	OSD2CfgWr(OSD_MENU1_END_ADR_M,OSD2Menu1EndAdr>>8);
	OSD2InItClearMenu(MENU1);
	//~Menue-2 Setting. ~//
	OSD2CfgWr(OSD_MENU2_ENABLE,0x00);
	OSD2CfgWr(OSD_MENU2_START_ADR_L,OSD2Menu2StrAdr&0x00FF);
	OSD2CfgWr(OSD_MENU2_START_ADR_M,OSD2Menu2StrAdr>>8);
	OSD2CfgWr(OSD_MENU2_END_ADR_L,OSD2Menu2EndAdr&0x00FF);
	OSD2CfgWr(OSD_MENU2_END_ADR_M,OSD2Menu2EndAdr>>8);
	OSD2InItClearMenu(MENU2);		  

 	OSD2ClearSRam();	  

	//~Load Color Table.~//
	OSD2LoadColor(); 
 	IconsStart = font4BP0_000;
	OSD2Load4BPFont();

	I2CWriteByte(TW803_P0,OSD2_CFG_INDEX,0x09);
 	for(m_wBuff[0] =0;m_wBuff[0]<18;m_wBuff[0]++)
	{														
		I2CWriteByte(TW803_P0,OSD2_CFG_DATA,0);
	}	
//Fill pattern
/*
	OSD2CfgWr(0x30,0x4B);
	OSD2CfgWr(0x31,0x80);
	OSD2CfgWr(0x32,6);
	OSD2CfgWr(0x33,12);
	OSD2CfgWr(0x35,00);
	OSD2CfgWr(0x38,0x0C);
	OSD2CfgWr(0x3C,0xE7);
	OSD2CfgWr(0x3E,0xE9);
	for(m_wBuff[1]=0; m_wBuff[1]<(FontHeight); m_wBuff[1]++)
	{				
		m_wBuff[2] = m_wBuff[1]*6;
		OSD2CfgWr(0x37,font4BP0_Pat[m_wBuff[2] ]);
		OSD2CfgWr(0x37,font4BP0_Pat[m_wBuff[2]+1]);
		OSD2CfgWr(0x37,font4BP0_Pat[m_wBuff[2]+2]);
		OSD2CfgWr(0x37,font4BP0_Pat[m_wBuff[2]+3]);
		OSD2CfgWr(0x37,font4BP0_Pat[m_wBuff[2]+4]);
		OSD2CfgWr(0x37,font4BP0_Pat[m_wBuff[2]+5]);
	}		*/

}

⌨️ 快捷键说明

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