📄 scp.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 + -