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

📄 prtcl.c

📁 一个比较好用的TW2835音视频芯片开发板的程序,
💻 C
📖 第 1 页 / 共 2 页
字号:

		HALE = 1;
		HALE = 0;


		MDATA =	_wdat;


		HWRB = 0;
		HWRB = 1;


//		P1 = 0xf6;					//... chip select all off
		P1 = 0xf6;					//... initial state
//		P2 = 0x03;					//... chip select all off
#if	defined(__4CH__)
		HCSB0=1;
		HCSB1=1;
#elif	defined(__16CH__)
//		P2 = _dvc;
		P2 |= _dvc;
#endif


		MDATA =	0xff;



#if	defined(__EN_ISR__)
		EA = 1;
#endif
//	}
}
//==================================================================================
void WriteAsicByte(U8 _dvc, U8 _pg, U8 _addr, U8 _wdat)
{
//	U8 _t1_;
	
//	if(_pg == DVC_PG0){
//		WriteI2CByte(0x28,_addr,_wdat);
//	}
//	else{
#if	defined(__EN_ISR__)
		EA = 0;
#endif

//		HCSB0=1;
//		HCSB1=1;
		P1 = 0xf6;					//... initial state
//		//... P[7:4]:INT[5:2], P1_3:HALE, P1_2:HRDB, P1_1:HWRB, P1_0:HSPB

#if	defined(__4CH__)
		_dvc = 0;			//... temporal
		if(_pg == DVC_PG0){	HCSB1=0;	HCSB0=0;}
		else if(_pg == DVC_PG1){	HCSB1=0;	HCSB0=1;}
		else if(_pg == DVC_PG2){	HCSB1=1;	HCSB0=0;}
#elif	defined(__16CH__)
		if(_pg == DVC_PG0)	P2 = _dvc^0xff;
		else if(_pg == DVC_PG1)	P2 = (_dvc^0xff)|0x55;
		else if(_pg == DVC_PG2)	P2 = (_dvc^0xff)|0xaa;
#endif


		MDATA =	_addr;


		HALE = 1;
		HALE = 0;


		MDATA =	_wdat;


		HWRB = 0;
		HWRB = 1;


//		P1 = 0xf6;					//... chip select all off
		P1 = 0xf6;					//... initial state
//		P2 = 0x03;					//... chip select all off
#if	defined(__4CH__)
		HCSB0=1;
		HCSB1=1;
#elif	defined(__16CH__)
//		P2 = _dvc;
		P2 |= _dvc;
#endif

		MDATA =	0xff;

#if	defined(__EN_ISR__)
		EA = 1;
#endif
//	}
}
//==================================================================================
void WriteAsicTable(U8 _dvc, U8 _pg, U8 _addr, U8 code *_tbl_ptr, U8 _tbl_cnt)
{
	U8 _t1_;

//	if(_pg == DVC_PG0){
//		WriteI2CTable(0x28,_addr,_tbl_ptr,_tbl_cnt);
//	}
//	else{
#if	defined(__EN_ISR__)
		EA = 0;
#endif

//		HCSB0=1;
//		HCSB1=1;
		P1 = 0xf6;					//... initial state
//		//... P[7:4]:INT[5:2], P1_3:HALE, P1_2:HRDB, P1_1:HWRB, P1_0:HSPB

#if	defined(__4CH__)
		_dvc = 0;			//... temporal
		if(_pg == DVC_PG0){	HCSB1=0;	HCSB0=0;}
		else if(_pg == DVC_PG1){	HCSB1=0;	HCSB0=1;}
		else if(_pg == DVC_PG2){	HCSB1=1;	HCSB0=0;}
#elif	defined(__16CH__)
		if(_pg == DVC_PG0)	P2 = _dvc^0xff;
		else if(_pg == DVC_PG1)	P2 = (_dvc^0xff)|0x55;
		else if(_pg == DVC_PG2)	P2 = (_dvc^0xff)|0xaa;
#endif

		for(_t1_=0;_t1_<_tbl_cnt;_t1_++)
		{


			MDATA =	_addr+_t1_;


			HALE = 1;
			HALE = 0;
	


			MDATA =	*_tbl_ptr;

			HWRB = 0;
			HWRB = 1;
			_tbl_ptr++;
		}	


//		P1 = 0xf6;					//... chip select all off
		P1 = 0xf6;					//... initial state
//		P2 = 0x03;					//... chip select all off
#if	defined(__4CH__)
		HCSB0=1;
		HCSB1=1;
#elif	defined(__16CH__)
//		P2 = _dvc;
		P2 |= _dvc;
#endif

		MDATA =	0xff;

#if	defined(__EN_ISR__)
		EA = 1;
#endif
//	}
}
//==================================================================================
/*
void WriteAsicByte(U8 dvc, U8 page_cs, U8 wadd, U8 wdata)
{
//	U8 t1;
	
//	if(page_cs == PAGE0){
//		WriteI2CByte(0x28,wadd,wdata);
//	}
//	else{
		EA = 0;
		
		HSPB = 0;		//... parallel interface
	//	for(t1=0;t1<100;t1++);
		if(page_cs == DVC_PG0)	ChipSelPage0();
		else if(page_cs == DVC_PG1)	ChipSelPage1();
		else if(page_cs == DVC_PG2)	ChipSelPage2();

		HWRB = 1;
		HRDB = 1;
		HALE = 0;

		MDATA =	wadd;
		HALE = 1;
		HALE = 0;
		MDATA =	wdata;
		HWRB = 0;
		HWRB = 1;
		ChipSelAllOff();
		
		MDATA =	0xff;

		EA = 1;
//	}
}
//==================================================================================
void WriteAsicTable(U8 dvc, U8 page_cs, U8 wadd, U8 code *tbl_ptr, U8 tbl_cntr)
{
	U8 i;
U8	_dly_;
//	if(page_cs == PAGE0){
//		WriteI2CTable(0x28,wadd,tbl_ptr,tbl_cntr);
//	}
//	else{
		EA = 0;

		HSPB = 0;		//... parallel interface
		if(page_cs == DVC_PG0)	ChipSelPage0();
		else if(page_cs == DVC_PG1)	ChipSelPage1();
		else if(page_cs == DVC_PG2)	ChipSelPage2();

		HWRB = 1;
		HRDB = 1;
		HALE = 0;

//		MDATA =	wadd;
//		HALE = 1;
//		HALE = 0;

		for(i=0;i<tbl_cntr;i++)
		{
//			WriteAsicByte(dvc,page_cs,wadd+i,*tbl_ptr);
		MDATA =	wadd+i;
		HALE = 1;
		HALE = 0;

			MDATA =	*tbl_ptr;
//DLY_FOR(10);
			HWRB = 0;
			HWRB = 1;
			
			tbl_ptr++;
		}	
		ChipSelAllOff();

		MDATA =	0xff;

		EA = 1;
//	}
}
//	*/
//==================================================================================
/*
void WriteAsicTablePair(U8 _dvc, U8 _pg, U8 code *_tbl_ptr, U8 _tbl_cnt_pair)
{
	U8 _t1_;

//	if(_pg == DVC_PG0){
//		WriteI2CTable(0x28,_addr,_tbl_ptr,_tbl_cnt);
//	}
//	else{
#if	defined(__EN_ISR__)
		EA = 0;
#endif


		_dvc = 0;			//... temporal
		

		//... P1_7:HPSB_M, P1_6:HCSB1, P1_5:HPSB_D, P1_4:HCSB0, P1_3:HALE, P1_2:HRDB, P1_1:HWRB, P1_0:HSPB
		if(_pg == DVC_PG0)	P1 = 0xc6;
		else if(_pg == DVC_PG1)	P1 = 0x76;
		else if(_pg == DVC_PG2)	P1 = 0xb6;

		for(_t1_=0;_t1_<_tbl_cnt_pair;_t1_++)
		{
			MDATA =	*_tbl_ptr;
			HALE = 1;
			HALE = 0;
			_tbl_ptr++;
	
			MDATA =	*_tbl_ptr;
			HWRB = 0;
			HWRB = 1;
			_tbl_ptr++;
		}	

//		ChipSelAllOff();
//	HCSB1 = 1;
//	HPSB_M = 1;
//
//	HCSB0 = 1;
//	HPSB_D = 1;
		P1 = 0xf6;					//... chip select all off


		MDATA =	0xff;

#if	defined(__EN_ISR__)
		EA = 1;
#endif
//	}
}
//	*/
//==================================================================================
U8 ReadAsicByte(U8 _dvc, U8 _pg, U8 _addr)
{
	U8 _rdat_;
//U8	_dly_;

//	if(_pg == DVC_PG0){
//		_rdat_ = ReadI2CByte(0x28,_addr);
//	}
//	else{
#if	defined(__EN_ISR__)
		EA = 0;
#endif

//		HCSB0=1;
//		HCSB1=1;
		P1 = 0xf6;					//... initial state
//		//... P[7:4]:INT[5:2], P1_3:HALE, P1_2:HRDB, P1_1:HWRB, P1_0:HSPB

#if	defined(__4CH__)
		_dvc = 0;			//... temporal
		if(_pg == DVC_PG0){	HCSB1=0;	HCSB0=0;}
		else if(_pg == DVC_PG1){	HCSB1=0;	HCSB0=1;}
		else if(_pg == DVC_PG2){	HCSB1=1;	HCSB0=0;}
#elif	defined(__16CH__)
		if(_pg == DVC_PG0)	P2 = _dvc^0xff;
		else if(_pg == DVC_PG1)	P2 = (_dvc^0xff)|0x55;
		else if(_pg == DVC_PG2)	P2 = (_dvc^0xff)|0xaa;
#endif

		MDATA =	_addr;

		HALE = 1;
		HALE = 0;

		MDATA =	0xff;		// port0(MDATA) input mode

		HRDB = 0;

		_rdat_ =	MDATA;

//DLY_FOR(30);
		HRDB = 1;


//		P1 = 0xf6;					//... chip select all off
		P1 = 0xf6;					//... initial state
//		P2 = 0x03;					//... chip select all off
#if	defined(__4CH__)
		HCSB0=1;
		HCSB1=1;
#elif	defined(__16CH__)
//		P2 = _dvc;
		P2 |= _dvc;
#endif

#if	defined(__EN_ISR__)
		EA = 1;
#endif
//	}
	return _rdat_;
}
//==================================================================================
/*
U8 ReadAsicByte(U8 dvc, U8 page_cs, U8 radd)
{
	U8 read_data;

//	if(page_cs == PAGE0){
//		read_data = ReadI2CByte(0x28,radd);
//	}
//	else{
		EA = 0;
		
		HSPB = 0;		//... parallel interface
		if(page_cs == DVC_PG0)	ChipSelPage0();
		else if(page_cs == DVC_PG1)	ChipSelPage1();
		else if(page_cs == DVC_PG2)	ChipSelPage2();

		HWRB = 1;
		HRDB = 1;
		HALE = 0;

		MDATA =	radd;
		HALE = 1;
		HALE = 0;
		MDATA =	0xff;		// port0(MDATA) input mode
		HRDB = 0;
		read_data =	MDATA;
		HRDB = 1;
		ChipSelAllOff();

		EA = 1;
//	}

	return read_data;
}
//	*/
//==================================================================================
//==================================================================================

//	//... HALE->0, HSPB->0, HRDB->1, HWRB->1 and HCSB control for DVC_PG2
//	if(_pg == DVC_PG0)	rGPDDAT = 0x300|(_dvc^0xff);
//	else if(_pg == DVC_PG1)	rGPDDAT = 0x300|((_dvc^0xff)|0x55);
//	else if(_pg == DVC_PG2)	rGPDDAT = 0x300|((_dvc^0xff)|0xaa);

//==================================================================================
//==================================================================================


//==================================================================================
/*
U8	ReadAsicFld(void)
{
	U8 _rdat_;

//	if(_pg == DVC_PG0){
//		_rdat_ = ReadI2CByte(0x28,_addr);
//	}
//	else{
#if	defined(__EN_ISR__)
		EA = 0;
#endif
		
		//... P1_7:HPSB_M, P1_6:HCSB1, P1_5:HPSB_D, P1_4:HCSB0, P1_3:HALE, P1_2:HRDB, P1_1:HWRB, P1_0:HSPB
//		if(_pg == DVC_PG0)	P1 = 0xc6;
//		else if(_pg == DVC_PG1)	P1 = 0x76;
//		else if(_pg == DVC_PG2)	P1 = 0xb6;
		P1 = 0x76;

		MDATA =	0xab;
		HALE = 1;
		HALE = 0;
		MDATA =	0xff;		// port0(MDATA) input mode
		HRDB = 0;
		_rdat_ =	MDATA;
		HRDB = 1;

//		ChipSelAllOff();
//	HCSB1 = 1;
//	HPSB_M = 1;
//
//	HCSB0 = 1;
//	HPSB_D = 1;
		P1 = 0xf6;					//... chip select all off


#if	defined(__EN_ISR__)
		EA = 1;
#endif
//	}

	return	_rdat_;
}
//	*/
//==================================================================================
//*
U8	ReadAsicOSDMemWr(U8 _dvc)//void)
{
	U8 _rdat_;

//	if(_pg == DVC_PG0){
//		_rdat_ = ReadI2CByte(0x28,_addr);
//	}
//	else{
#if	defined(__EN_ISR__)
		EA = 0;
#endif
		
//		HCSB0=1;
//		HCSB1=1;
		P1 = 0xf6;					//... initial state
//		//... P[7:4]:INT[5:2], P1_3:HALE, P1_2:HRDB, P1_1:HWRB, P1_0:HSPB

#if	defined(__4CH__)
		_dvc = 0;			//... temporal
		HCSB0=0;
		HCSB1=1;
#elif	defined(__16CH__)
		P2 = (_dvc^0xff)|0xaa;
#endif

		MDATA =	0x0a;

		HALE = 1;
		HALE = 0;

		MDATA =	0xff;		// port0(MDATA) input mode

		HRDB = 0;
		_rdat_ =	MDATA;
		HRDB = 1;


//		P1 = 0xf6;					//... chip select all off
		P1 = 0xf6;					//... initial state
//		P2 = 0x03;					//... chip select all off
#if	defined(__4CH__)
		HCSB0=1;
		HCSB1=1;
#elif	defined(__16CH__)
//		P2 = _dvc;
		P2 |= _dvc;
#endif


#if	defined(__EN_ISR__)
		EA = 1;
#endif
//	}
	return _rdat_;
}
//	*/
//==================================================================================

⌨️ 快捷键说明

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