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 + -
显示快捷键?