init_dvc.c

来自「一个比较好用的TW2835音视频芯片开发板的程序,」· C语言 代码 · 共 381 行 · 第 1/2 页

C
381
字号
//	WriteAsicByte(cmn_dvc,DVC_PG1,0x74,0x12);	//... queue data
//	WriteAsicByte(cmn_dvc,DVC_PG1,0x75,0x83);	//... queue addr
//	
//	WriteAsicByte(cmn_dvc,DVC_PG1,0x56,0x40);				//... start internal trigger for mux queue

#if	defined(__4CH__)
	for(_t1_=0;_t1_<4;_t1_++){
		WriteAsicByte(MASTER,DVC_PG1,0x59,_t1_);							//... 
		WriteAsicByte(MASTER,DVC_PG1,0x5a,BIT7|_t1_);							//... 
	}
#elif	defined(__16CH__)
//	WriteAsicByte(cmn_dvc,DVC_PG1,0x84,0xc1);									//... invert FLDENCP
//
//	WriteAsicByte(SLAVE1,DVC_PG1,0x8d,0x40);										//... when cascade
//	WriteAsicByte(SLAVE1,DVC_PG1,0x8e,0x06);										//... when cascade
	for(_t1_=0;_t1_<16;_t1_++){
		SetCrntDvcCh(_t1_,&_dvc_,&_ch_);
		SetAsicFlgType(_dvc_,DVC_PG1,0x16+(_ch_<<3),0x0f,_t1_);
	}

	if(cmn_rc_md == RC_MD_120_FPS){
		//... mux queue
		WriteAsicByte(cmn_dvc,DVC_PG1,0x57,0x0f);							//... 
		for(_t1_=0;_t1_<16;_t1_++){
			WriteAsicByte(SLAVE3,DVC_PG1,0x59,_t1_);						//... 
			WriteAsicByte(SLAVE3,DVC_PG1,0x5a,BIT7|_t1_);				//... 
		}
		//... popup queue
		WriteAsicByte(cmn_dvc,DVC_PG1,0x71,0x03);							//... 
		WriteAsicByte(SLAVE3,DVC_PG1,0x73,0x01);						//... 
		WriteAsicByte(SLAVE3,DVC_PG1,0x74,0x23);						//... 
		WriteAsicByte(SLAVE3,DVC_PG1,0x75,BIT7);				//... 
		WriteAsicByte(SLAVE3,DVC_PG1,0x73,0x45);						//... 
		WriteAsicByte(SLAVE3,DVC_PG1,0x74,0x67);						//... 
		WriteAsicByte(SLAVE3,DVC_PG1,0x75,BIT7|0x01);				//... 
		WriteAsicByte(SLAVE3,DVC_PG1,0x73,0x89);						//... 
		WriteAsicByte(SLAVE3,DVC_PG1,0x74,0xab);						//... 
		WriteAsicByte(SLAVE3,DVC_PG1,0x75,BIT7|0x02);				//... 
		WriteAsicByte(SLAVE3,DVC_PG1,0x73,0xcd);						//... 
		WriteAsicByte(SLAVE3,DVC_PG1,0x74,0xef);						//... 
		WriteAsicByte(SLAVE3,DVC_PG1,0x75,BIT7|0x03);				//... 
	}
	else if(cmn_rc_md == RC_MD_240_FPS){
		//... mux queue
		WriteAsicByte(cmn_dvc,DVC_PG1,0x57,0x07);							//... 
		for(_t1_=0;_t1_<8;_t1_++){
			WriteAsicByte(SLAVE1,DVC_PG1,0x59,_t1_);						//... 
			WriteAsicByte(SLAVE3,DVC_PG1,0x59,_t1_+8);						//... 
			WriteAsicByte(cmn_dvc,DVC_PG1,0x5a,BIT7|_t1_);				//... 
		}
		//... popup queue
		WriteAsicByte(cmn_dvc,DVC_PG1,0x71,0x01);							//... 
		WriteAsicByte(SLAVE1,DVC_PG1,0x73,0x01);						//... 
		WriteAsicByte(SLAVE1,DVC_PG1,0x74,0x23);						//... 
		WriteAsicByte(SLAVE1,DVC_PG1,0x75,BIT7);				//... 
		WriteAsicByte(SLAVE1,DVC_PG1,0x73,0x45);						//... 
		WriteAsicByte(SLAVE1,DVC_PG1,0x74,0x67);						//... 
		WriteAsicByte(SLAVE1,DVC_PG1,0x75,BIT7|0x01);				//... 
		WriteAsicByte(SLAVE3,DVC_PG1,0x73,0x89);						//... 
		WriteAsicByte(SLAVE3,DVC_PG1,0x74,0xab);						//... 
		WriteAsicByte(SLAVE3,DVC_PG1,0x75,BIT7);				//... 
		WriteAsicByte(SLAVE3,DVC_PG1,0x73,0xcd);						//... 
		WriteAsicByte(SLAVE3,DVC_PG1,0x74,0xef);						//... 
		WriteAsicByte(SLAVE3,DVC_PG1,0x75,BIT7|0x01);				//... 
	}
	else{//if(cmn_rc_md == RC_MD_120_FPS){
		//... mux queue
		WriteAsicByte(cmn_dvc,DVC_PG1,0x57,0x03);							//... 
		for(_t1_=0;_t1_<4;_t1_++){
			WriteAsicByte(MASTER,DVC_PG1,0x59,_t1_);						//... 
			WriteAsicByte(SLAVE1,DVC_PG1,0x59,_t1_+4);						//... 
			WriteAsicByte(SLAVE2,DVC_PG1,0x59,_t1_+8);						//... 
			WriteAsicByte(SLAVE3,DVC_PG1,0x59,_t1_+12);						//... 
			WriteAsicByte(cmn_dvc,DVC_PG1,0x5a,BIT7|_t1_);				//... 
		}
		//... popup queue
		WriteAsicByte(cmn_dvc,DVC_PG1,0x71,0x00);							//... 
		WriteAsicByte(MASTER,DVC_PG1,0x73,0x01);						//... 
		WriteAsicByte(MASTER,DVC_PG1,0x74,0x23);						//... 
		WriteAsicByte(SLAVE1,DVC_PG1,0x73,0x45);						//... 
		WriteAsicByte(SLAVE1,DVC_PG1,0x74,0x67);						//... 
		WriteAsicByte(SLAVE2,DVC_PG1,0x73,0x89);						//... 
		WriteAsicByte(SLAVE2,DVC_PG1,0x74,0xab);						//... 
		WriteAsicByte(SLAVE3,DVC_PG1,0x73,0xcd);						//... 
		WriteAsicByte(SLAVE3,DVC_PG1,0x74,0xef);						//... 
		WriteAsicByte(cmn_dvc,DVC_PG1,0x75,BIT7);				//... 
	}

//	for(_t1_=0;_t1_<16;_t1_++){
//		SetCrntDvcCh(_t1_,&_dvc_,&_ch_);
//		if(!(_t1_&0x03)){
//			SetAsicFlgType(_dvc_,DVC_PG1,0x54,0x60,0x00);				//... STRB_FLD=0
//			SetAsicFlgType(_dvc_,DVC_PG1,0x57,BIT7,0x00);				//... STRB_AUTO=0
//			SetAsicFlgType(_dvc_,DVC_PG1,0x71,BIT5,0x00);				//... POPUP_FLD=0
//		}
//		WriteAsicByte(_dvc_,DVC_PG1,0x60+3*_ch_,0x80|_ch_);			//... FUNC_MODE=0
//	}
	WaitCmnFldOd();
	WriteAsicByte(cmn_dvc,DVC_PG1,0x70,0xc0);							//... POS_CTL_EN=1, POS_TRIG_MODE=1
#endif
}
//==================================================================================
//*
void InitPg2(void)
{
	U8 _t1_;

	//... OSD color index
	InitOSDCol();

	WriteAsicByte(cmn_dvc,DVC_PG2,0x0f,0x0f);		//... OSD Enable for Display/Capture	
//	WriteAsicByte(cmn_dvc,DVC_PG2,0x0f,0x0c);		//... OSD Enable for Display				---->> X
//	WriteAsicByte(cmn_dvc,DVC_PG2,0x0f,0x0a);		//... OSD Enable for Display/Capture	//... temporal


	WriteOSDClrX(MASTER,0,0,45,31);						//... max line num is 310 line for OSD
	WriteOSDClrX(SLAVE1,0,0,45,31);						//... max line num is 310 line for OSD
	WriteOSDClrX(SLAVE2,0,0,45,31);						//... max line num is 310 line for OSD
	WriteOSDClrX(SLAVE3,0,0,45,31);						//... max line num is 310 line for OSD

	WriteOSDClrY(MASTER,0,0,45,31);						//... max line num is 310 line for OSD
	WriteOSDClrY(SLAVE1,0,0,45,31);						//... max line num is 310 line for OSD
	WriteOSDClrY(SLAVE2,0,0,45,31);						//... max line num is 310 line for OSD
	WriteOSDClrY(SLAVE3,0,0,45,31);						//... max line num is 310 line for OSD


//	WriteAsicByte(cmn_dvc,DVC_PG2,0x10,0xb0);		//... cursor
	WriteAsicByte(cmn_dvc,DVC_PG2,0x10,0xf0);		//... cursor

	//... other ( mouse, single box, 2d box, mask ..)
	WriteAsicTable(cmn_dvc,DVC_PG2,0x10,tbl_pg2_mse_box,80);
	if(b_cmn_jp_vdo == VDO_NTSC){
		WriteAsicTable(cmn_dvc,DVC_PG2,0x60,tbl_ntsc_pg2_2dbox,32);
		for(_t1_=0;_t1_<4;_t1_++)	WriteAsicTable(cmn_dvc,DVC_PG2,0x80+0x20*_t1_,tbl_ntsc_pg2_mtn,32);
	}
	else{
		WriteAsicTable(cmn_dvc,DVC_PG2,0x60,tbl_pal_pg2_2dbox,32);
		for(_t1_=0;_t1_<4;_t1_++)	WriteAsicTable(cmn_dvc,DVC_PG2,0x80+0x20*_t1_,tbl_pal_pg2_mtn,32);
	}
}
//	*/
//==================================================================================
//void	InitReg(void)
//{
////	reg_crsr_ctrl = ReadAsicByte(MASTER,DVC_PG2,0x10);
//}
//==================================================================================
/*
void InitEncExt(void)
{
//	if(BitClear(cmn_flg,CMN_JP_VDO)){
//		WriteI2CTable(I2C_ID_7121_D,0x26,tbl_ntsc_saa7121_1,4);
//		WriteI2CTable(I2C_ID_7121_D,0x5a,tbl_ntsc_saa7121_2,38);
//	}
//	else{
//		WriteI2CTable(I2C_ID_7121_D,0x26,tbl_pal_saa7121_1,9);
//		WriteI2CTable(I2C_ID_7121_D,0x5a,tbl_pal_saa7121_2,38);
//	}
//
//	WriteI2CByte(I2C_ID_7121_D,0x3a,0x13);	// slave mode, CBGEN(BIT7 1:on, 0:off)
//	WriteI2CByte(I2C_ID_7121_D,0x6b,0x12);






//	if(b_cmn_jp_vdo == NTSC){
//		WriteI2CTable(KS0123,0x00,tbl_ntsc_ks0123,17);
//	}
//	else{
//		WriteI2CTable(KS0123,0x00,tbl_pal_ks0123,17);
//	}
}
//	*/
//==================================================================================
/*
void InitDecPB(void)
{
	if(b_jp_video == NTSC){
		WriteI2CTable(TW9901,0x02,tbl_ntsc_tw9901,53);
	}
	else{
		WriteI2CTable(TW9901,0x02,tbl_pal_tw9901,53);
	}
	WriteI2CByte(TW9901,0x06,0x80);	// soft reset
}
//==================================================================================
//	*/

⌨️ 快捷键说明

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