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

📄 osd1_initial.c

📁 TFT 屏驱动IC源码头TFT 屏驱动IC源码
💻 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 + -