📄 osd2_init.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 + -