?? osd1_initial.c
字號:
#include "Common.h"
#include "Global.h"
#include "ICControl.h"
#include "System.h"
#include "TWICreg.h"
#include "OSD1_Define.h"
//#include "FONT0_Font12W18H.h"
#include "Font12x12.h"
uCHAR code cOSDMenuLutData[32]={
//0xGB, 0x0R
0x00,0x00, //0
0x88,0x0f,//pink //0x0f,0x00, //1 blue
0x00,0x00, //2 black
0x08,0x08, //0x0f,0x0a, //3 purple
0x0f,0x00, //4 blue
0x44,0x08, // brown//0xf8,0x00, //5 green
0x00,0x0f, //0x22,0x0A, //6 red
0x84,0x0f,// saffron 0x1f,0x01, //7 light blue//olive
0xf0,0x00, //green //0x88,0x05, //8 light grey
0x04,0x00, //cyan 0xb9,0x0b, //9 purple
0xff,0x0f, //white//0xBD,0x05, //A purple
0xff,0x08, //cambrige_blue //0x0f,0x0f, //B
0xf0,0x0f, //0xA3,0x0A, //C Yellow
0x0f,0x08, //lilac//0xcc,0x0c, //D light grey
0x88,0x08, //grey //0x68,0x03, //E Light Blue Main Menu Background or 0x79, 0x04 which is a litter light
0xcc,0x0c, //0xff,0x0f, //F white
};
void OSD1LoadColor(void)
{
uCHAR i;
IC_WritByte(TWIC_P0,OSD_CFG_INDEX,OSD_LUT_RAM_DATA);
for(i=0;i<32;i++)
IC_WritByte(TWIC_P0,OSD_CFG_DATA,cOSDMenuLutData[i]);
}
void OSD1InitCleanLine(uCHAR x,uCHAR y,uCHAR cColor,uCHAR cLength)
{
if((x < OSD_LENGTH) && ( y < OSD_LINE_NUM))//OSD_LENGTH62,OSD_LINE_NUM20
{
OSD1SetRamAddr(MENU_RAM_START_ADDRESS+((int)y << 6)+x);
while((x < OSD_LENGTH) && (x < cLength))
{
IC_WritByte(TWIC_P0,OSD_RAM_DL,0x20);//_blank
IC_WritByte(TWIC_P0,OSD_RAM_DL,cColor);
x++;
}
}
}
void OSD1Init(void)
{
OSD1CfgSet(OSD1_CTRL,0x00); //disable osd and width*1
OSD1CfgSet(CHAR_DLY_1,OSD1_H_START_POS);
OSD1CfgSet(CHAR_DLY_2,OSD1_V_START_POS);
OSD1SetRamAddr(FONT_DATA_START_ADDRESS);
OSD1CfgSet(CHAR_FONT_SIZE,FONT_SIZE);
OSD1CfgSet(CHAR_RAM_BASE_A,CHAR_MAIN_MENU_START); //To setup character index start address.
//If start address is 0x9c0,
//You have get ((0x9c0 >> 5) & 0x7f) to store it
OSD1CfgSet(CHAR_RAM_END_A,CHAR_RAM_END); //This is to set index end address.
OSD1CfgSet(BLINK_CTRL,0x09);
OSD1CfgSet(CHAR_RAM_CTRL,0x20);//OSD1 RAM access pointer mode:word,62 char/row,
OSD1CfgSet(ALPHA_BLD_CTRL,0x83);
OSD1CfgSet(FONTROM_IND_BASE,FONT_ROM_INDEX_BASE); //but How to use font when its index >0xFF?
OSD1LoadColor();
OSD1SetRamAddr(FONT_DATA_START_ADDRESS);
for(m_wBuff[1]=0; m_wBuff[1]<TOTAL_FONT_NUM; m_wBuff[1]++) //Load Font
{
for(m_wBuff[0]=0; m_wBuff[0]<FONT_HEIGHT; m_wBuff[0]++)
{
IC_WritByte(TWIC_P0,OSD_RAM_DL,AllFonts[m_wBuff[1]][m_wBuff[0]*2]);
IC_WritByte(TWIC_P0,OSD_RAM_DL,AllFonts[m_wBuff[1]][m_wBuff[0]*2+1]);
}
}
for(m_wBuff[0]=(TOTAL_FONT_NUM)*FONT_HEIGHT; m_wBuff[0]<Clean_RAM_END; m_wBuff[0]++) //clear menu page
{
IC_WritByte(TWIC_P0,OSD_RAM_DL,0x00);
IC_WritByte(TWIC_P0,OSD_RAM_DL,0x00);
}
for(m_wBuff[0]=0;m_wBuff[0]<OSD_LINE_NUM;m_wBuff[0]++)
{
OSD1InitCleanLine(0,m_wBuff[0],0,OSD_LENGTH);
//Set Line Attribute
OSD1SetRamAddr(MENU_RAM_START_ADDRESS+(m_wBuff[0] << 6)+OSD_LENGTH+1);
IC_WritByte(TWIC_P0,OSD_RAM_DL,0x00);
IC_WritByte(TWIC_P0,OSD_RAM_DL,0x80);
}
IC_WritByte(TWIC_P0,0xE2,0x11);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -