📄 tw2835.c
字号:
//#include <stdlib.h>//#include <stdarg.h>//#include <string.h>#include "hdr.h"//extern void SetMainTst(void);//==================================================================================//==================================================================================void Main(void){ U8 _t1_=0; U8 _t2_=0x1; U8 _t3_=0; U8 _dvc_, _ch_; U16 _dly_; // InitPrt(); InitIsr(); InitVdo(); InitRstN(); InitPg0(); InitPg1(); InitPg2();// InitReg(); SetOSDNoMn(); for(_t1_=0;_t1_<4;_t1_++){ SetChQd(PTH_X,MASTER,_t1_,_t1_); } WriteAsicByte(MASTER,DVC_PG1,0xa0,0x66); WriteAsicByte(MASTER,DVC_PG1,0xa1,0x32); //... WriteAsicByte(MASTER,DVC_PG1,0xa2,0x97); //... WriteAsicByte(MASTER,DVC_PG1,0x05,0x04); //... AUTO_ENHANCE=1#if defined(__WTH_VGA__) MDIN180Init();#endif EA = 1; //... global interrupt InitMse(); DLY_FOR(30000); DLY_FOR(30000);// DLY_FOR(30000);// DLY_FOR(30000);// DLY_FOR(30000);// DLY_FOR(30000);// DLY_FOR(30000);// DLY_FOR(30000);// DLY_FOR(30000);// DLY_FOR(30000); WriteMse(0xeb);// EX1 = 1; //... VSENC// SetBit(T2MOD,BIT4); //... clear interrupt flag(-> pending flag)// ClearBit(EXIF,BIT4); //... clear interrupt flag(-> pending flag) EX2 = 1; //... FLDENC// SetBit(T2MOD,BIT5); //... clear interrupt flag(-> pending flag)// ClearBit(EXIF,BIT5); //... clear interrupt flag(-> pending flag) EX3 = 1; //... FLDENC// TR0 = 1; //... start count for timer0// ET0 = 1; //... enable interrupt timer0 while(1) {#if defined(__4CH__) if(wndw_ds_sc_fmt == SC_FMT_8CH){ //... psuedo 8 ch procedure if(b_ds_wth_rc == OFF){ Run8ChFast(); } else{// if(b_rc_fm_type == FM_TYPE_CIF){ if((wndw_rc_fm_type == CIF_TYPE_FR)||(wndw_rc_fm_type == CIF_TYPE_FL)){ Run8ChCif(); } } }// if(wndw_ds_sc_fmt == SC_FMT_8CH){// if((b_rc_fm_type == FM_TYPE_MUX)&&(b_ds_wth_rc == ON)){// Run8ChMux();// }// }#endif//... key0 .......................................................... if(b_key0_dwn == 1){ b_key0_dwn = 0; } if(b_key0_clk == 1){ b_key0_clk = 0; b_mse_clk_lb = 1; //if(_dly_<1) _dly_++;//else _dly_=0;//if(_dly_==0){//WriteI2CWord(I2C_ID_MDIN180, 0x4c0, 0x0001);//WriteI2CWord(I2C_ID_MDIN180, 0x4C4, 0x0001); // local reg. update//}//else if(_dly_==1){//WriteI2CWord(I2C_ID_MDIN180, 0x4c2, 0x0010);//WriteI2CWord(I2C_ID_MDIN180, 0x4C4, 0x0001); // local reg. update//}////else if(_dly_==2){////}////else if(_dly_==3){////} } if(b_key0_pshng_clk == 1){ b_key0_pshng_clk = 0; } // if(b_key1_dwn == 1){// b_key1_dwn = 0;// }// if(b_key1_clk == 1){// b_key1_clk = 0;////// b_mse_clk_rb = 1;// }// if(b_key1_pshng_clk == 1){// b_key1_pshng_clk = 0;// }//... count flag .......................................................... if(b_cmn_cnt_1s == 1){ b_cmn_cnt_1s = 0;// if(b_mse_stts_pth == MSE_PTH_X)// WriteOSDFntY(MASTER,OSD_PTH_POS_X,OSD_PTH_POS_Y,0x00,'X'-0x20); //... 060307:temporal// else// WriteOSDFntY(MASTER,OSD_PTH_POS_X,OSD_PTH_POS_Y,0x00,'Y'-0x20); //... 060307:temporal#if defined(__4CH__) if(wndw_ds_sc_fmt == SC_FMT_8CH){ if((b_cmn_wndw_pop != ON)&&(b_cmn_wndw_mn != ON)) Run8ChOSDRtoNum(); }#endif } if(b_cmn_cnt_05s == 1){ b_cmn_cnt_05s = 0; } if(b_cmn_cnt_02s == 1){ b_cmn_cnt_02s = 0; if(b_cmn_wndw_mn == ON){// if(wndw_mn_pos_crnt == POP_POS_MTN_BD){// for(_t1_=0;_t1_<cmn_max_ch;_t1_++)// SetWndwMtnBdOSDDtBx(PTH_X,_t1_);// }// else if(wndw_mn_pos_crnt == POP_POS_MTN_ND){// for(_t1_=0;_t1_<cmn_max_ch;_t1_++)// SetWndwMtnNdOSDDtBx(PTH_X,_t1_);// } if((wndw_mn_pos_crnt == POP_POS_MTN_BD)||(wndw_mn_pos_crnt == POP_POS_MTN_ND)){ for(_t1_=0;_t1_<cmn_max_ch;_t1_++) SetWndwMtnBdNdOSDDtBx(PTH_X,_t1_); } } } if(b_cmn_cnt_01s == 1){ b_cmn_cnt_01s = 0; } if(b_cmn_cnt_fld == 1){ b_cmn_cnt_fld = 0;#if defined(__4CH__) if(wndw_ds_sc_fmt == SC_FMT_8CH){// if((b_rc_fm_type == FM_TYPE_MUX)&&(b_ds_wth_rc == ON)){ if((wndw_rc_fm_type > CIF_TYPE_FL)&&(b_ds_wth_rc == ON)){ Run8ChMux(); } }#endif } if(b_cmn_dtct_vs == 1){ b_cmn_dtct_vs = 0; SetMsePtr(reg_crsr_pos_x,reg_crsr_pos_y); if(b_cmn_wndw_pop == ON){ RunPopProc(); } else if(b_cmn_wndw_mn == ON){ if(b_mse_stts_pth_mn == b_mse_stts_pth){ _t1_ = wndw_mn_pos_crnt & 0x0f; if(b_mse_stts_pth_mn == MSE_PTH_X){ if(_t1_ == POP_POS_DS){ if(wndw_mn_pos_crnt == POP_POS_DS_SC) RunWndwDsSc(PTH_Y);// else if(wndw_mn_pos_crnt == POP_POS_DS_PB) RunWndwDsPb(PTH_Y); else if(wndw_mn_pos_crnt == POP_POS_DS_SR){#if defined(__4CH__) if((wndw_ds_sc_fmt == SC_FMT_4CH)&&(b_ds_wth_4pb)){ //... no operation }#elif defined(__16CH__) if((wndw_ds_sc_fmt == SC_FMT_16CH)&&(b_ds_wth_16pb)){ //... no operation }#endif else RunWndwDsSr(PTH_Y); } else if(wndw_mn_pos_crnt == POP_POS_DS_IN) RunWndwDsIn(PTH_Y); else if(wndw_mn_pos_crnt == POP_POS_ZM) RunWndwZm(); }// else if(_t1_ == POP_POS_CH) RunWndwCh(PTH_Y);// else if(_t1_ == POP_POS_ZM) RunWndwZm(); else if(_t1_ == POP_POS_MTN){ if(wndw_mn_pos_crnt == POP_POS_MTN_MD) RunWndwMtnMd(PTH_Y);// else if(wndw_mn_pos_crnt == POP_POS_MTN_BD) RunWndwMtnBd(PTH_Y);// else if(wndw_mn_pos_crnt == POP_POS_MTN_ND) RunWndwMtnNd(PTH_Y); else if(wndw_mn_pos_crnt == POP_POS_MTN_BD) RunWndwMtnBdNd(PTH_Y); else if(wndw_mn_pos_crnt == POP_POS_MTN_ND) RunWndwMtnBdNd(PTH_Y); }#if defined(__WTH_ADO__) else if(_t1_ == POP_POS_ADO){ if(wndw_mn_pos_crnt == POP_POS_ADO_GN) RunWndwAdoGn(PTH_Y); else if(wndw_mn_pos_crnt == POP_POS_ADO_LV) RunWndwAdoLv(PTH_Y); else if(wndw_mn_pos_crnt == POP_POS_ADO_RC) RunWndwAdoRc(PTH_Y);// else if(wndw_mn_pos_crnt == POP_POS_ADO_DT) RunWndwAdoDt(PTH_Y); }#elif defined(__WTH_VGA__)// else if(_t1_ == POP_POS_VGA){ else if((_t1_ == POP_POS_VGA)&&(cmn_vga_det)){ if(wndw_mn_pos_crnt == POP_POS_VGA_OR) RunWndwVGAOr(PTH_Y); else if(wndw_mn_pos_crnt == POP_POS_VGA_DI) RunWndwVGADi(PTH_Y); else if(wndw_mn_pos_crnt == POP_POS_VGA_IE) RunWndwVGAIe(PTH_Y); else if(wndw_mn_pos_crnt == POP_POS_VGA_NR) RunWndwVGANr(PTH_Y); }#endif// else if(_t1_ == POP_POS_RG) RunWndwRg(PTH_Y); else if(_t1_ == (POP_POS_RG+(cmn_vga_det))) RunWndwRg(PTH_Y);// else if(_t1_ == POP_POS_ABT) ;//RunWndwAbt(PTH_Y); } else{ if(_t1_ == POP_POS_RC){ if(wndw_mn_pos_crnt == POP_POS_RC_FM) RunWndwRcFm(PTH_Y); else if(wndw_mn_pos_crnt == POP_POS_RC_IN) RunWndwRcIn(PTH_Y); else if(wndw_mn_pos_crnt == POP_POS_RC_NR) RunWndwRcNr(PTH_Y); }#if defined(__WTH_ADO__) else if(_t1_ == POP_POS_ADO){ if(wndw_mn_pos_crnt == POP_POS_ADO_GN) RunWndwAdoGn(PTH_Y); else if(wndw_mn_pos_crnt == POP_POS_ADO_LV) RunWndwAdoLv(PTH_Y); else if(wndw_mn_pos_crnt == POP_POS_ADO_RC) RunWndwAdoRc(PTH_Y);// else if(wndw_mn_pos_crnt == POP_POS_ADO_DT) RunWndwAdoDt(PTH_Y); }#elif defined(__WTH_VGA__)// else if(_t1_ == POP_POS_VGA){ else if((_t1_ == POP_POS_VGA)&&(cmn_vga_det)){ if(wndw_mn_pos_crnt == POP_POS_VGA_OR) RunWndwVGAOr(PTH_Y); else if(wndw_mn_pos_crnt == POP_POS_VGA_DI) RunWndwVGADi(PTH_Y); else if(wndw_mn_pos_crnt == POP_POS_VGA_IE) RunWndwVGAIe(PTH_Y); else if(wndw_mn_pos_crnt == POP_POS_VGA_NR) RunWndwVGANr(PTH_Y); }#endif// else if(_t1_ == POP_POS_RG) RunWndwRg(PTH_Y); else if(_t1_ == (POP_POS_RG+cmn_vga_det)) RunWndwRg(PTH_Y);// else if(_t1_ == POP_POS_ABT) ;//RunWndwAbt(PTH_Y); } } } else{ //... mouse button ........................................................................// SetCrntDvcCh((mse_ch&0x0f),&wndw_crnt_dvc,&wndw_crnt_ch); if(b_mse_btn_dwn_lb == 1){ b_mse_btn_dwn_lb = 0; // if(mse_ch != 0xff) wndw_pop_crnt_ch = mse_ch&0x0f; } if(b_mse_clk_lb == 1){ b_mse_clk_lb = 0; // _t1_ = GetMseOSDX(reg_crsr_pos_x);// _t2_ = GetMseOSDY(reg_crsr_pos_y);//// if((_t1_ == OSD_PTH_POS_X)&&(_t2_ == OSD_PTH_POS_Y)){//// b_mse_stts_pth ^= 1;//// if(b_mse_stts_pth == MSE_PTH_X){// WriteAsicByte(MASTER,DVC_PG1,0xa0,0x66);// WriteAsicByte(MASTER,DVC_PG1,0xa1,0x32); //... s-video (x path) //... 060705:temporal// WriteAsicByte(MASTER,DVC_PG1,0xa2,0xd7); //... cvbs (y path)// WriteAsicByte(MASTER,DVC_PG1,0xa3,0x01); //... 656 output//// WriteOSDFntY(MASTER,OSD_PTH_POS_X,OSD_PTH_POS_Y,0x00,'X'-0x20); //... 060307:temporal// }// else{// WriteAsicByte(MASTER,DVC_PG1,0xa0,0xbb);// WriteAsicByte(MASTER,DVC_PG1,0xa1,0x76); //... s-video (y path) //... 060705:temporal // WriteAsicByte(MASTER,DVC_PG1,0xa2,0x97); //... cvbs (x path)// WriteAsicByte(MASTER,DVC_PG1,0xa3,0x10); //... 656 output//// WriteOSDFntY(MASTER,OSD_PTH_POS_X,OSD_PTH_POS_Y,0x00,'Y'-0x20); //... 060307:temporal// }// } if((b_mse_stts_pth == MSE_PTH_X)&& ((wndw_ds_sc_fmt == SC_FMT_1CH)||((wndw_ds_sc_fmt == SC_FMT_4CH)&&(!b_ds_wth_4pb)))){// if((mse_ch != 0xff)&&((mse_ch&0x0f) == wndw_pop_crnt_ch)){ if(mse_ch != 0xff){ if(mse_btn_pshng_cnt > MSE_BTN_DLY_CLK){ SetCrntDvcCh((mse_ch&0x0f),&_dvc_,&_ch_); _t1_ = GetAsicFlgType(_dvc_,DVC_PG1,0x10+(_ch_<<3),BIT6); //... POP_UP_EN if(_t1_){ _t2_ = GetAsicFlgType(_dvc_,DVC_PG1,0x11+(_ch_<<3),BIT6); if(_t2_){ SetAsicFlgType(_dvc_,DVC_PG1,0x0f,0xc0,0x80); //... FRZ_FLD=2 SetAsicFlgType(_dvc_,DVC_PG1,0x11+(_ch_<<3),BIT6,0x00); //... FRZ_CH=0 } else{ SetAsicFlgType(_dvc_,DVC_PG1,0x0f,0xc0,0x40); //... FRZ_FLD=1 SetAsicFlgType(_dvc_,DVC_PG1,0x11+(_ch_<<3),BIT6,BIT6); //... FRZ_CH=1 } } else{// SetBit(_t1_,BIT6);// WriteAsicByte(_dvc_,DVC_PG1,0x10+(_ch_<<3),_t1_);// // for(_t2_=0;_t2_<cmn_max_ch;_t2_++){// SetCrntDvcCh(_t2_,&_dvc_,&_ch_);// if(_t2_ != (mse_ch&0x0f))// SetAsicFlgType(_dvc_,DVC_PG1,0x10+(_ch_<<3),BIT6,0x00); //... POP_UP_EN=0// } for(_t1_=0;_t1_<cmn_max_ch;_t1_++){ SetCrntDvcCh(_t1_,&_dvc_,&_ch_); if(_t1_ == (mse_ch&0x0f)) SetAsicFlgType(_dvc_,DVC_PG1,0x10+(_ch_<<3),BIT6,BIT6); //... POP_UP_EN=1 else SetAsicFlgType(_dvc_,DVC_PG1,0x10+(_ch_<<3),BIT6,0x00); //... POP_UP_EN=0 } } } } } } if(b_mse_pshng_clk_lb == 1){ b_mse_pshng_clk_lb = 0; } if(b_mse_btn_dwn_rb == 1){ b_mse_btn_dwn_rb = 0; } if(b_mse_clk_rb == 1){ b_mse_clk_rb = 0; if(b_mse_rlse_lb == 1){ SetOSDMn();//#if defined(__4CH__)// if(wndw_ds_sc_fmt == SC_FMT_8CH)// WriteOSDClrY(MASTER,WNDW_DS_SC_CNT_X,WNDW_DS_SC_CNT_Y,11,1);//#endif CreatePopMain(); } } if(b_mse_pshng_clk_rb == 1){ b_mse_pshng_clk_rb = 0; }// if(wndw_ds_sc_fmt != SC_FMT_8CH){ //... psuedo 8 ch procedure if(wndw_ds_sc_fmt == SC_FMT_8CH){} else if((wndw_ds_sc_fmt == SC_FMT_4CH)&&(b_ds_wth_4pb)){} else{ if((mse_ch != 0xff)&&((mse_ch & 0xf0) != 0)) SetMseFreeScl(); else SetMseFreeDrg(); } } SetKey0();// SetKey1(); WriteMse(0xeb); }//... mouse read done .................................................... if(b_mse_rd_done == 1){ b_mse_rd_done = 0; SetMseMvmnt(); SetMseBtn(); mse_ch = GetMseCh((U8)(reg_crsr_pos_x>>1),(U8)(reg_crsr_pos_y>>1)); }//yyj debug if(P2_1==0) { SetOSDMn(); CreatePopMain(); } if(P3_0==0) { RunWndwZm(); } }}//==================================================================================
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -