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

📄 scp.c

📁 大名鼎鼎的mpc8260的bsp源代码
💻 C
字号:

#include "vxWorks.h"
#include "stdio.h"
#include "logLib.h"




#include "fpga.h"
#ifndef  DEBUG_U
/*#define  DEBUG_U*/
#endif


void scp_write_nr(unsigned char U_channel,unsigned char val)
{

int i=0 ,j =0,ix = 0,iy = 0;
if(U_channel==0)
{
WriteByte(FNR_TX,val);
WriteByte(FU_EN,0x01);
}
else
{
WriteByte(SNR_TX,val);
WriteByte(FU_EN,0x02);
}
#if 1
for(i=0;i<300;i++,ix++)
iy = ix*ix*ix+ix*ix+ix+i;
for(j=0;j<300;j++,iy++)
ix = iy*iy*iy+iy*iy+iy+j;
#else
for(i=0;i<30;i++);
#endif
WriteByte(FU_EN,0x00);
}

unsigned char scp_read_nr(unsigned char U_channel,unsigned char reg)
{
unsigned char tmp;
int i=0 ,j =0,ix = 0,iy = 0;
if(U_channel==0)
{
WriteByte(FNR_TX,(reg<<4)|0x80);
WriteByte(FU_EN,0x01);
#if 1
for(i=0;i<300;i++,ix++)
iy = ix*ix*ix+ix*ix+ix+i;
for(j=0;j<300;j++,iy++)
ix = iy*iy*iy+iy*iy+iy+j;
#else
for(i=0;i<30;i++);
#endif
WriteByte(FU_EN,0x00);
tmp= (ReadByte(FNR_RX))&0x0F;

#ifdef DEBUG_U
logMsg("reg val =%08x\n",tmp,0,0,0,0,0);
#endif

return tmp;
}
else
{
WriteByte(SNR_TX,(reg<<4)|0x80);
WriteByte(FU_EN,0x02);
#if 1
for(i=0;i<300;i++,ix++)
iy = ix*ix*ix+ix*ix+ix+i;
for(j=0;j<300;j++,iy++)
ix = iy*iy*iy+iy*iy+iy+j;
#else
for(i=0;i<30;i++);
#endif

WriteByte(FU_EN,0x00);
tmp=(ReadByte(SNR_RX))&0x0F;

#ifdef DEBUG_U
logMsg("reg val =%08x\n",   tmp,0,0,0,0,0);
#endif

return tmp;
}
}

 void scp_write_br(unsigned char U_channel,unsigned char reg,unsigned char val)
{
int i=0 ,j =0,ix = 0,iy = 0;
if(U_channel==0)
{
WriteByte(FBR_TX2,reg);
WriteByte(FBR_TX1,val);
WriteByte(FU_EN,0x04);
}
else
{
WriteByte(SBR_TX2,reg);
WriteByte(SBR_TX1,val);
WriteByte(FU_EN,0x08);
}
#if 1
for(i=0;i<600;i++,ix++)
iy = ix*ix*ix+ix*ix+ix+i;
for(j=0;j<600;j++,iy++)
ix = iy*iy*iy+iy*iy+iy+j;
#else
for(i=0;i<60;i++);
#endif

WriteByte(FU_EN,0x00);

}

 unsigned char scp_read_br(unsigned char U_channel,unsigned char reg)
{
unsigned char tmp;
int i =0 ,j = 0,ix = 0,iy = 0;
if(U_channel==0)
{
WriteByte(FBR_TX2,0xF0|reg);
WriteByte(FBR_TX1,0x00);
WriteByte(FU_EN,0x04);
#if 1
for(i=0;i<600;i++,ix++)
iy =ix*ix*ix+ix*ix+ix+i;
for(j=0;j<600;j++,iy++)
ix = iy*iy*iy+iy*iy+iy+j;
#else
for(i=0;i<60;i++);
#endif

WriteByte(FU_EN,0x00);
tmp = ReadByte(FBR_RX1);

#ifdef DEBUG_U
logMsg("reg val =%08x\n",  tmp,0,0,0,0,0);
#endif
return tmp;
}
else
{
WriteByte(SBR_TX2,0xF0|reg);
WriteByte(SBR_TX1,0x00);
WriteByte(FU_EN,0x08);
#if 1
for(i=0;i<600;i++,ix++)
iy =ix*ix*ix+ix*ix+ix+i;
for(j=0;j<600;j++,iy++)
ix = iy*iy*iy+iy*iy+iy+j;
#else
for(i=0;i<60;i++);
#endif

WriteByte(FU_EN,0x00);
tmp = ReadByte(SBR_RX1);

#ifdef DEBUG_U
logMsg("reg val =%08x\n",  tmp,0,0,0,0,0);
#endif
return tmp;
}

}


 void scp_write_or(unsigned char U_channel,unsigned char reg,unsigned char val)
{	
	int i =0 ,j = 0,ix = 0,iy = 0;
	/*BR10(b0)<-1; Select init group registers. */
	scp_write_br(U_channel,0x7a,0x01);
#if 1
for(i=0;i<600;i++,ix++)
iy =ix*ix*ix+ix*ix+ix+i;
for(j=0;j<600;j++,iy++)
ix = iy*iy*iy+iy*iy+iy+j;
#endif

	/*write OR register */
	scp_write_br(U_channel,reg,val);
#if 1
for(i=0;i<600;i++,ix++)
iy =ix*ix*ix+ix*ix+ix+i;
for(j=0;j<600;j++,iy++)
ix = iy*iy*iy+iy*iy+iy+j;
#endif
	/*BR10(b0)<-0;*/ /* Return to normal byte register operation. */
	scp_write_br(U_channel,0x7a,0x00);
#if 1
for(i=0;i<600;i++,ix++)
iy =ix*ix*ix+ix*ix+ix+i;
for(j=0;j<600;j++,iy++)
ix = iy*iy*iy+iy*iy+iy+j;
#endif

	
}

  unsigned char scp_read_or(unsigned char U_channel,unsigned char reg)
{
	UCHAR tmp;
	int i =0 ,j = 0,ix = 0,iy = 0;
	/*BR10(b0)<-1; Select init group registers. */
	scp_write_br(U_channel,0x7a,0x01);
#if 1
for(i=0;i<600;i++,ix++)
iy =ix*ix*ix+ix*ix+ix+i;
for(j=0;j<600;j++,iy++)
ix = iy*iy*iy+iy*iy+iy+j;
#endif
	/*read OR register */
	tmp = scp_read_br(U_channel,reg);
#if 1
for(i=0;i<600;i++,ix++)
iy =ix*ix*ix+ix*ix+ix+i;
for(j=0;j<600;j++,iy++)
ix = iy*iy*iy+iy*iy+iy+j;
#endif
	/*BR10(b0)<-0; *//* Return to normal byte register operation. */
	scp_write_br(U_channel, 0x7a,  0x00);
#if 1
for(i=0;i<600;i++,ix++)
iy =ix*ix*ix+ix*ix+ix+i;
for(j=0;j<600;j++,iy++)
ix = iy*iy*iy+iy*iy+iy+j;
#endif
	#ifdef DEBUG_U
	logMsg("reg val =%08x\n",tmp,0,0,0,0,0 );
	#endif
	return tmp;
	
}


⌨️ 快捷键说明

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