亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? t102.c

?? 這是一個用T108加上瑞薩公司R8C2A做的一個OSD顯示。希望能幫上大家。
?? C
字號:
#include "tw803_regs.h"
#include "t108_util.h"
#include "osddraw.h"
#include "OSD2_define.h"
#include "OSD1_define.h"
#include "iic.h"
#include "GAMMA.H"

#include "t102.h"

#include "T102_Logo.c"
#include "Font12x12.c"

unsigned int   m_wBuff[3];
const unsigned char Icon1BPColorTable[]={
0x00,0x00,0x1F,0x00,0x00,0xF8,0xE0,0x07,0x80,0xB7,0xA0,0x8D,0x80,0x53,0xA6,0x33,
0xA0,0x07,0xC4,0x24,0xB9,0x10,0x1E,0x00,0x52,0x29,0x46,0x33,0xE0,0x05,0x44,0x24
};

const unsigned char OSDLutLogoData[32]={
0x00,0x00,
0xDE,0x00,
0x10,0x00,
0xFE,0x00,
0x9C,0x00,
0x17,0x00,
0xDD,0x00,
0x14,0x00,
0x0D,0x00,
0x38,0x00,
0x5A,0x00,
0x11,0x00,
0x7B,0x00,
0x15,0x00,
0x7B,0x00,
0x16,0x00
};

void OSD1Init(void);
void OSDLogo(void);
void OSD1ClearSRam(void);
void OSD1InItClearMenu(unsigned char MenuIndex);
void OSD1Load1BPFont(void);
void OSD1LoadColor(void);
void OpenBluePanel(void);

void OSDLogo(void)
{
	unsigned int i,j;
    unsigned char tt,tt1;
	OSD1Disable();
	OSDCfgWr(OSD_MENU1_ENABLE,0x00);
	//OSDSetRamAddr(MENU_RAM_START_ADDRESS); 
	//for(i=0; i< 0x1FFF; i++) OSDSetRamData(0xE001);										 
	//~ Set OSD Main Color LUT for Logo. ~//
	OSDCfgWr(OSD_COLOR_LUT_ADR_PORT,0x00);
	I2CWriteByte(TW803_P0,OSD_CFG_INDEX,0x09);
 	for(i=0;i<32;i++)
  	{
		OSDCfgWr(OSD_COLOR_LUT_DATA_PORT,OSDLutLogoData[i]);	 
	}	  	
	//~ Set BMP Color LUT Base address. ~//
	OSDCfgWr(0x2C,0x00);
//	OSDCfgWr(0x2d,0xc0);

	//~ Set LOGO Width. ~//
	OSDCfgWr(OSD_BMP_HSIZE_L,0x54);            	//width 40(x8)
	OSDCfgWr(OSD_BMP_HSIZE_M,0x00);
	//~ Set LOGO Height. ~//
	OSDCfgWr(OSD_BMP_VSIZE_L,0x51);            	//width 40(x8)
	OSDCfgWr(OSD_BMP_VSIZE_M,0x00);
    //~ Set LOGO Horizintal start position. ~//
	OSDCfgWr(OSD_BMP_HSTART_L,0x40);            	//width 40(x8)								                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
	OSDCfgWr(OSD_BMP_HSTART_M,0x00);
	//~ Set LOGO Vertical start position. ~//
	OSDCfgWr(OSD_BMP_VSTART_L,0x38);            	//width 40(x8)
	OSDCfgWr(OSD_BMP_VSTART_M,0x00);
	//~ Set OSD RAM Address. ~//
	OSDSetRamAddr(0x0000);
	//~ Load LOGO bitmap table to RAM. ~//
	twdWr_Burst_A(OSD1_RAM_DL);
    for(i=0;i<168*81/2;i++)
	{
		tt=0;tt1=0;
	    for(j=0;j<4;j++)
	    {
	        tt=((logodata[i*2+1]>>j*2)&0x03);
	        tt1=tt|(tt1<<2);
	    }
		twdWr_Burst_D(tt1);
		//IC_WritByte(TWIC_P0,OSD2_RAM_DL,tt1);
		tt=0;tt1=0;
	    for(j=0;j<4;j++)
	    {
	        tt=((logodata[i*2]>>j*2)&0x03);
	        tt1=tt|(tt1<<2);
	    }
		twdWr_Burst_D(tt1);
		//IC_WritByte(TWIC_P0,OSD2_RAM_DL,tt1);
	}
	twdWr_Burst_P();

	//~ Set LOGO bitmap data address in RAM. ~//
	OSDCfgWr(OSD_BMP_START_ADR_L,0x00);
	OSDCfgWr(OSD_BMP_START_ADR_M,0x00);

	//~ Set BMP configuration. ~//
	OSDCfgWr(0x20,0xC0);
	
	OSDEnable();
	twdDelay(/*30000*/2000);
	
	
//	OSD1Disable();

        //	OSDCfgWr(0x20,0x25);         cjh
}

void OSD1Init(void)
{

	OSDCfgWr(OSD_CHAR_FONT_SIZE,(0xC0)|(0x00)|FontHeight);	

	//~Set Char2BP Font Index Base.~//
	OSDCfgWr(OSD_CHAR2BP_FONT_INDEX,Font2BPIndexStr>>1);
	//~Set Char4BP Font Index Base.~//
	OSDCfgWr(OSD_CHAR4BP_FONT_INDEX,Font4BPIndexStr>>1);
	//~Set Char2BP Font Memory Base Address.~//
	OSDCfgWr(OSD_CHAR2BP_FONT_MEMADD_L,Font2BPDataStrAdr&0x00FF);
	OSDCfgWr(OSD_CHAR2BP_FONT_MEMADD_M,Font2BPDataStrAdr>>8);
	//~Set Char4BP Font Memory Base Address.~//
	OSDCfgWr(OSD_CHAR4BP_FONT_MEMADD_L,Font4BPDataStrAdr&0x00FF);
	OSDCfgWr(OSD_CHAR4BP_FONT_MEMADD_M,Font4BPDataStrAdr>>8);
	//~Set Globa Alpha Blending Control.~//
	OSDCfgWr(OSD_GLOBAL_ALPHA_BLENDING,0x10);
	//~Set Border/Shadow/Char1BP Color High Bits Offset.~//
	OSDCfgWr(OSD_BSH_COLOR_HIGHBIT,0x20);
	//~Set Build-in Rom Font Index Base//
	OSDCfgWr(OSD_FONTROM_INDEX,ROMFONTIndexStr>>1);
	//~Clear Ram	~//
	OSD1ClearSRam();
	//Clear CFG
	I2CWriteByte(TW803_P0,OSD1_CFG_INDEX,0x09);
 	for(m_wBuff[0] =0;m_wBuff[0]<18;m_wBuff[0]++)
	{														
		I2CWriteByte(TW803_P0,OSD1_CFG_DATA,0);
	}							   

	//~Menue-1 Setting. ~//
	OSDCfgWr(OSD_MENU1_ENABLE,0x00);
	OSDCfgWr(OSD_MENU1_START_ADR_L,Menu1StrAdr&0x00FF);
	OSDCfgWr(OSD_MENU1_START_ADR_M,Menu1StrAdr>>8);
	OSDCfgWr(OSD_MENU1_END_ADR_L,Menu1EndAdr&0x00FF);
	OSDCfgWr(OSD_MENU1_END_ADR_M,Menu1EndAdr>>8);

	//~Menue-2 Setting. ~//
	OSDCfgWr(OSD_MENU2_ENABLE,0x00);
	OSDCfgWr(OSD_MENU2_START_ADR_L,Menu2StrAdr&0x00FF);
	OSDCfgWr(OSD_MENU2_START_ADR_M,Menu2StrAdr>>8);
	OSDCfgWr(OSD_MENU2_END_ADR_L,Menu2EndAdr&0x00FF);
	OSDCfgWr(OSD_MENU2_END_ADR_M,Menu2EndAdr>>8);
			  

	//~Load Color Table.~//

	OSD1Load1BPFont();	
	OSD1LoadColor();

		
	OSD1InItClearMenu(MENU1);
	OSD1InItClearMenu(MENU2);
	
}


void OSD1ClearSRam(void)
{
	OSDCfgWr(OSD_BLK_WRT_LSB,0x00);
	OSDCfgWr(OSD_BLK_WRT_MSB,0x00);
	OSDCfgWr(OSD_BLK_WRT_SADD_LSB,0x00);
	OSDCfgWr(OSD_BLK_WRT_SADD_MSB,0x00);
	OSDCfgWr(OSD_BLK_WRT_LENGTH,0xFF);
	OSDCfgWr(OSD_BLK_WRT_CTR,0x9f);
}

void OSD1InItClearMenu(unsigned char MenuIndex)
{
	unsigned char i=0; 
	if(MenuIndex == MENU1)
	{	
		for(i=0; i<Menu1Height; i++)
		{ 	
			OSDSetRamAddr(Menu1StrAdr+(Menu1Width+4)*i);
			twdWr_Burst_A(OSD1_RAM_DL);
			//~Set RAtt_V~//
			if(i==0)
				OSDSetRamDataBuest(0x4000|Menu1StartY); 
		 	else
				OSDSetRamDataBuest(0xE001);
			//~Set RAtt_H~//
			OSDSetRamDataBuest(0x6000|Menu1StartX);
			//~Set RAtt_A~//
			OSDSetRamDataBuest(0xD000|0x0003);

			//~Set RAtt_C~//
			OSDSetRamDataBuest(0x0000|(Menu1Width));  	
			m_wBuff[0]=0;
			while(m_wBuff[0]<Menu1Width)
			{
				OSDSetRamDataBuest(0x0000|((unsigned int)(0&0x04)<<9)|(0));
				m_wBuff[0]++;
			} 
			twdWr_Burst_P();
		} 
		
	}
	else if(MenuIndex == MENU2)
	{
		
		for(i=0; i<Menu2Height; i++)
		{
			OSDSetRamAddr(Menu2StrAdr+(Menu2Width+4)*i);
			twdWr_Burst_A(OSD1_RAM_DL);
			//~Set RAtt_V~//
			if(i==0)
				OSDSetRamDataBuest(0x4000|Menu2StartY); 
		 	else
				OSDSetRamDataBuest(0xE001);
			//~Set RAtt_H~//
			OSDSetRamDataBuest(0x6000|Menu2StartX);
			//~Set RAtt_A~//
			OSDSetRamDataBuest(0xD000|0x0003);
			//~Set RAtt_C~//
			OSDSetRamDataBuest(0x0000|(Menu2Width));  	
			m_wBuff[0]=0;
			while(m_wBuff[0]<Menu2Width)
			{
				OSDSetRamDataBuest(0x0000|((unsigned int)(0&0x0F)<<9)|(0));
				m_wBuff[0]++;
			} 
			twdWr_Burst_P();
		}	
	    
	}	
}


void OSD1Load1BPFont(void)
{
	unsigned int i,j,k,l;
	
	OSDSetRamAddr(Font1BPDataStrAdr);
  	twdWr_Burst_A(OSD1_RAM_DL);
	if(FontWidth==OSD1FONTWIDTH12)
	{
	 	for(j=0;j<Font1BPNum;j++)
		{
			for(i=0; i<(FontHeight); i++)
			{
				k = i<<1;
				l = (i+1)<<1;
				m_wBuff[1] = (unsigned int)(All1BPFonts[j][k])|((unsigned int)(All1BPFonts[j][k+1])<<8);
				m_wBuff[2] = (unsigned int)(All1BPFonts[j][l])|((unsigned int)(All1BPFonts[j][l+1])<<8);
				switch(i&0x03)
				{
					case 0:
						m_wBuff[0]=	m_wBuff[1] |(m_wBuff[2]>>12);
						twdWr_Burst_D(m_wBuff[0]&0x00FF);
						twdWr_Burst_D(m_wBuff[0]>>8);
					break;
					case 1:
						m_wBuff[0]=	(m_wBuff[1] <<4)|(m_wBuff[2] >>8);
						twdWr_Burst_D(m_wBuff[0]&0x00FF);
						twdWr_Burst_D(m_wBuff[0]>>8);
					break;
					case 2:
						m_wBuff[0]=	(m_wBuff[1] <<8)|(m_wBuff[2]>>4);
						twdWr_Burst_D(m_wBuff[0]&0x00FF);
						twdWr_Burst_D(m_wBuff[0]>>8);
					break;
					case 3:
						//Do nothing
					break;
				}
			}
		}
	}
	twdWr_Burst_P();
}

void OSD1LoadColor(void)
{


	OSDCfgWr(OSD_COLOR_LUT_ADR_PORT,0x00);
	I2CWriteByte(TW803_P0,OSD1_CFG_INDEX,0x09);

	twdWr_Burst_A(OSD1_CFG_DATA);
 	for(m_wBuff[0] =0;m_wBuff[0]<3212;m_wBuff[0]++)
	{
		twdWr_Burst_D(Icon1BPColorTable[m_wBuff[0]]);
	}
	twdWr_Burst_P();

	OSDCfgWr(OSD_COLOR_LUT_ADR_PORT,0x80);
	I2CWriteByte(TW803_P0,OSD1_CFG_INDEX,0x09);
	for(m_wBuff[0]=0;m_wBuff[0]<18;m_wBuff[0]++)
	{
		I2CWriteByte(TW803_P0,OSD1_CFG_DATA,0);
		I2CWriteByte(TW803_P0,OSD1_CFG_DATA,0);
		I2CWriteByte(TW803_P0,OSD1_CFG_DATA,0);
	}

}

void OpenBluePanel(void)
{
		I2CWriteByte(TW803_P0, 0x9d, 0x00);
		I2CWriteByte(TW803_P0, 0x9e, 0xff);
		I2CWriteByte(TW803_P0, 0x9f, 0x00);
		I2CWriteByte(TW803_P0, PATTERN_CTRL, I2CReadByte(TW803_P0, PATTERN_CTRL)|0x80);
		I2CWriteByte(TW803_P0, 0xe2, 0x11);   /*/enable registers shadow control,sync all shadow registers	*/
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩av电影天堂| 国产精品夜夜嗨| 日本sm残虐另类| 国产成人精品一区二区三区四区| 欧美视频一区二区三区在线观看| 久久无码av三级| 天堂av在线一区| 色综合久久久久综合体桃花网| 精品国产精品一区二区夜夜嗨| 一区二区在线观看免费视频播放| 九九**精品视频免费播放| 色狠狠av一区二区三区| 国产欧美一区二区三区在线看蜜臀| 日日夜夜精品免费视频| 91久久免费观看| 最近日韩中文字幕| 不卡一区二区在线| 久久精品一区二区三区不卡 | 777精品伊人久久久久大香线蕉| 日本一区二区视频在线观看| 久久福利视频一区二区| 欧美一区二区在线看| 天天av天天翘天天综合网色鬼国产| 成人激情电影免费在线观看| 久久综合色8888| 韩日av一区二区| 精品欧美黑人一区二区三区| 久久精品免费看| 欧美一区二区三区白人| 日韩在线卡一卡二| 欧美一区二区免费视频| 美女尤物国产一区| 欧美一区二区三区的| 日本女人一区二区三区| 日韩三级免费观看| 激情图片小说一区| 久久毛片高清国产| 粉嫩高潮美女一区二区三区| 国产精品天天看| 色婷婷综合视频在线观看| 亚洲精品成人a在线观看| 日本韩国欧美在线| 亚洲成人在线免费| 欧美一级欧美三级| 国内成人精品2018免费看| 久久亚洲精品国产精品紫薇| 国产91精品欧美| 亚洲欧美国产三级| 欧美熟乱第一页| 精品一区二区在线看| 久久久国产精品午夜一区ai换脸| 高清国产一区二区| 一区二区三区高清不卡| 欧美一级视频精品观看| 国产在线国偷精品产拍免费yy| 日本一区二区视频在线观看| 在线亚洲免费视频| 轻轻草成人在线| 国产精品亲子伦对白| 欧美中文字幕亚洲一区二区va在线 | 亚洲在线视频网站| 欧美一区二区免费| 成人av资源网站| 日韩精品乱码免费| 国产婷婷色一区二区三区四区| 91麻豆免费观看| 免费高清成人在线| 亚洲人成网站色在线观看| 69p69国产精品| 成人性色生活片| 午夜欧美电影在线观看| 国产午夜精品久久久久久免费视| 91麻豆精品在线观看| 久久国产三级精品| 一区二区久久久| 国产亚洲综合在线| 欧美精品一卡二卡| 成人黄色大片在线观看| 视频一区欧美日韩| 日韩毛片一二三区| 精品国产成人系列| 欧美专区日韩专区| 国产98色在线|日韩| 蜜桃视频在线观看一区| 日韩午夜小视频| 日本精品视频一区二区| 丁香激情综合五月| 久久精品国产精品亚洲精品| 亚洲欧美日韩在线播放| 久久先锋资源网| 欧美成人精品福利| 欧美老肥妇做.爰bbww| 99国产精品一区| 成人午夜大片免费观看| 九九在线精品视频| 日本欧美韩国一区三区| 一区二区三区四区蜜桃| 欧美高清在线视频| 久久女同精品一区二区| 91精品国产综合久久久久久| 在线免费观看日本欧美| 不卡的电影网站| 国产成人在线看| 激情综合亚洲精品| 久久精品国产99国产精品| 日韩影院精彩在线| 亚洲资源中文字幕| 亚洲一区二区三区在线| 亚洲人精品午夜| 1024成人网| 中文字幕的久久| 国产精品乱子久久久久| 亚洲国产精品传媒在线观看| 久久久五月婷婷| 久久久精品综合| 国产日韩三级在线| 国产精品日产欧美久久久久| 国产精品久久综合| 亚洲免费av观看| 亚洲一区在线观看视频| 亚洲成人精品影院| 亚洲大片在线观看| 美女脱光内衣内裤视频久久网站| 青青青爽久久午夜综合久久午夜| 麻豆中文一区二区| 精品一区二区av| 成人性生交大片免费看中文网站| 成人亚洲一区二区一| 日本高清不卡aⅴ免费网站| 色悠悠久久综合| 欧美熟乱第一页| 精品日韩一区二区三区| 亚洲国产精品v| 一区二区三区资源| 日本不卡高清视频| 国产福利一区二区三区在线视频| 91一区二区在线| 欧美卡1卡2卡| 久久午夜免费电影| 一区二区三区四区在线播放| 亚洲6080在线| 国产在线看一区| 色综合av在线| 精品少妇一区二区三区免费观看| 欧美高清在线一区| 天天综合日日夜夜精品| 国产精品白丝av| 91久久免费观看| 精品国产三级电影在线观看| 国产精品久99| 蜜桃av噜噜一区| 99久久精品国产观看| 56国语精品自产拍在线观看| 久久精品日产第一区二区三区高清版 | 国产精品99久久久久久久女警 | 在线观看日韩毛片| 欧美一区二区黄| 国产精品免费av| 丝袜美腿高跟呻吟高潮一区| 国产成人在线免费| 91精品国产综合久久福利| 国产精品久线观看视频| 精品一区在线看| 在线观看成人免费视频| 久久久久久久久久久99999| 午夜不卡av在线| 精品美女在线观看| 亚洲黄色录像片| 一区二区三区91| 岛国精品一区二区| 91精品国产综合久久精品麻豆 | 欧美精品免费视频| 久久久亚洲精品一区二区三区| 亚洲国产精品久久人人爱蜜臀 | 国产精品对白交换视频| 日韩不卡免费视频| 在线精品视频免费观看| 久久精品一区二区三区四区| 美女脱光内衣内裤视频久久网站 | 亚洲一区二区三区国产| 高清久久久久久| 欧美精品一区二区蜜臀亚洲| 亚洲777理论| 欧美综合一区二区| 亚洲乱码中文字幕综合| 成人免费三级在线| 国产午夜亚洲精品午夜鲁丝片| 欧美精品自拍偷拍动漫精品| 激情五月播播久久久精品| 国产精品天干天干在线综合| 日韩欧美亚洲国产精品字幕久久久| 一区二区三区小说| 亚洲国产精品ⅴa在线观看| 91丨porny丨首页| 国产美女久久久久| 精品在线观看视频| 午夜亚洲福利老司机| 亚洲天天做日日做天天谢日日欢| 欧美成人性福生活免费看| 日韩一区二区影院|