📄 tcpip.c
字号:
////
tempj[0]=count2%65536%256;
tempj[1]=count2%65536/256;
tempj[2]=count2/65536;
tempj[3]=0;
////
for(ic=0;ic<send_sum-4;ic++) //(send_sum)
{
snd1char(real_buf[ic]);
}
for(ic=0;ic<4;ic++) //(send_sum)
{
snd1char(tempj[ic]);
}
pccomutm=0; //for pc
quitok(); //fail, back aa,55 ,88
return;
}
//
void clrmen(void) //buf8000[tt]
{uint tt;
for(tt=0;tt<32768;tt++)
{XBYTE[buf8000+tt]=00;
_nop_();
}
}
//
void delayx(uint ggg)
{uint ttt;
for(ttt=0;ttt<ggg;ttt++)
{_nop_();
}
}
void delay(uint gg) reentrant
{uint tt;
for(tt=0;tt<gg;tt++)
{_nop_();
}
}
/*
char serialsend(char *d,int len)
{ int i,j;
EX1=0 ;
j=dst_buf[0] ;
for(i=0;i<len;i++)
{
snd1char(*(dst_buf+i));
}
snd1char(0xaa);
snd1char(0x55);
snd1char(0x33);
EX1=1 ;
}
////
void snd1char(uchar dats)
{uint data cout;
tiflag=0;
en489=1;
SBUF=dats;
for(cout=0;cout<10000;cout++)
{if(TI==1)
{tiflag=1;
TI=0;
break;
}
}
_nop_();
}
//
void get1char(void)
{uint data cout;
riflag=0;
for(cout=0;cout<10000;cout++)
{if(RI==1)
{riflag=1;
RI=0;
break;
}
}
_nop_();
}
void quiterror(void) //void quitok(void)
{_nop_();
snd1char(0xaa);
_nop_();
snd1char(0x55);
snd1char(0x88);
en489=0;
SM2=1;
EA=1;
}
void quitok(void)
{_nop_();
snd1char(0xaa);
_nop_();
snd1char(0x55);
snd1char(0x33);
en489=0;
SM2=1;
EA=1;
}
////
void serialint(void) interrupt 4 //using 2
{uchar data ic,temp[3]={0};
EA=0;
for(ic=0;ic<2;ic++)
//address//
{
get1char();
if(riflag==0)
{//quiterror();
en489=0;
SM2=1;
EA=1;
return;
}
temp[ic]=SBUF;
}
for(ic=0;ic<(temp[0]-1);ic++)
{ get1char();
if (riflag!=1)
{quiterror();
return;
}
recibuf[ic]=SBUF; // READ SBUF
}
if(temp[1]==0xf0)
{for(ic=0;ic<64;ic++)
{
snd1char(0x44);
}
}
// seriaddress[0]=0x55;
snd1char(0xaa); //snd1char(0xaa);tichar(0x88);
_nop_();
snd1char(0x55);
snd1char(temp[0]); //send back address ;b0;
en489=0;
SM2=1;
EA=1;
}
// */
unsigned long int sum_Result(uchar *d,uint len) reentrant
{u_long sum_Rsult=0;
uint i;
if(len>1200)
len=1200;
if(len<10)
len=10;
for(i=0;i<len-10;i++)
{//temp1bytem1=*(d+i);
sum_Rsult+=*(d+i+6); //temp1bytem1;
}
return sum_Rsult;
}
unsigned long int sumre_Result(uchar *d,uint len) reentrant
{u_long sumre_Rsult=0;
uint i;
if(len>1200)
len=1200;
if(len<4)
len=4;
for(i=0;i<len-4;i++)
{//temp1bytem1=*(d+i);
sumre_Rsult+=*(d+i); //temp1bytem1;
}
return sumre_Rsult;
}
unsigned long int sumex_Result(uchar * d,uint len)
{u_long sumex_Rsult=0;
uint i;
if(len>1200)
len=1200;
for(i=0;i<len;i++)
{//temp1bytem1=*(d+i);
sumex_Rsult+=*(d+i); //temp1bytem1;
}
return sumex_Rsult;
}
///////////////////////////////////////////////////////////////
//FORMATION SOFTWARE
void startnewsch(void)
{uchar zonea,m,i;
for(zonea=0;zonea<zonex;zonea++)
{
if((hvnewsch(zonea)==0x01)||(hvnewsch(zonea)==0x04)) //01h=3000,04h=273ma scale;
{//have start flag
sleepall(zonea);
if(hvnewsch(zonea)==0x01)
{//scaledx[zonea] tabgal[zn]&n|m scale574b
m=scaledx[zonea]; //0xfe
i=scaledx[zonea+0x04]; //01
scale574b=scale574b&m|i;
XBYTE[driadds]=0xff ;
XBYTE[dridata]=scale574b; //0x80; //d7=1=3a scale574b
_nop_();
XBYTE[driadds]=scale574 ;//scldata; //
_nop_();
_nop_();
XBYTE[driadds]=0xff ;
//
// XBYTE[dridata]=0x80; //d7=1=3a scale574b
// XBYTE[driadds]=scldata; //
// _nop_();
// _nop_();
// XBYTE[driadds]=0x00;
// XBYTE[driadds]=0xff ; //0
// scalefg=0x80; //d7=0=3a
hvstarsch(zonea)=0x00|hvnewsch(zonea); //0=3a
}
else //(hvnewsch(zonea)==0x01)
{//scaledx[zonea] tabgal[zn]&n|m scale574b
m=scaledx[zonea]; //0xfe
// i=scaledx[zonea+0x04]; //01
scale574b=scale574b&m; //|i;
XBYTE[driadds]=0xff ;
XBYTE[dridata]=scale574b; //0x80; //d7=1=3a scale574b
_nop_();
XBYTE[driadds]=scale574 ;//scldata; //
_nop_();
_nop_();
XBYTE[driadds]=0xff ;
//
// XBYTE[dridata]=0x00; //d7=0=273
// XBYTE[driadds]=scldata; //
// _nop_();
// _nop_();
// XBYTE[driadds]=0x00;
// XBYTE[driadds]=0xff ; //0
// scalefg=0x00; //d7=1=273ma
hvstarsch(zonea)=0x00|hvnewsch(zonea); //3=273ma
}
_nop_();
hvnewsch(zonea)=0x00; //clr flag
for(m=0;m<16;m++)
pause0(zonea+m)=0x00;
startrut(zonea);
assemstatus(zonea);
if((XBYTE[add245]&0x80)==0x80)
{
calcu2da(zonea);
}
buildref(zonea);
refrstatus(zonea);
dispprg();
// hvstarsch(zonea)=0x0f; //sch begin fg
schendfg(zonea)=0; //sch begin fg
}
else if((hvnewsch(zonea)==0x81)||(hvnewsch(zonea)==0x84)) //calibration
{
if(got_2da(zonea)==0x01)
{
sleepall(zonea);
if(hvnewsch(zonea)==0x81)
{//scaledx[zonea] tabgal[zn]&n|m scale574b
m=scaledx[zonea]; //0xfe
i=scaledx[zonea+0x04]; //01
scale574b=scale574b&m|i;
XBYTE[driadds]=0xff ;
XBYTE[dridata]=scale574b; //0x80; //d7=1=3a scale574b
_nop_();
XBYTE[driadds]=scale574 ;//scldata; //
_nop_();
_nop_();
XBYTE[driadds]=0xff ;
//
hvstarsch(zonea)=0x00|hvnewsch(zonea); //0=3a
}
else
{//scaledx[zonea] tabgal[zn]&n|m scale574b
m=scaledx[zonea]; //0xfe
scale574b=scale574b&m; //|i;
XBYTE[driadds]=0xff ;
XBYTE[dridata]=scale574b; //0x80; //d7=1=3a scale574b
_nop_();
XBYTE[driadds]=scale574 ;//scldata; //
_nop_();
_nop_();
XBYTE[driadds]=0xff ;
//
hvstarsch(zonea)=0x00|hvnewsch(zonea); //3=273ma
}
_nop_();
hvnewsch(zonea)=0x00; //clr flag
//hvstarsch(zonea)=0x00; //sch begin fg
for(m=0;m<16;m++)
pause0(zonea+m)=0x00;
startrut(zonea);
assemstatus(zonea);
buildref(zonea);
dispprg();
// refrstatus(zonea);
// hvstarsch(zonea)=0x0f; //sch begin fg
schendfg(zonea)=0x88; //sch begin fg
got_2da(zonea)=0x00;
} //if got 2da
}
_nop_();
}
_nop_();
}
void assemstatus(uchar zone)
{uchar i,j,n,m,zz,zq,zc,zn;
//for(zz=0;zz<4;zz++)
zz=zone;
if(statufg(zz)!=0x00)
{
n=0;
for(j=0;j<4;j++)
{for(i=0;i<4;i++) //4 channel
{if((nwstatu0(zz+j*4+i)&0x80)!=0)
{m=0x03; //sleep=11 ;00 or 10=ccc; 01=cd ;0; //00h,01h,02h,03h;
}
else
m=tabdcdc[nwstatu0(zz+j*4+i)&0x3];
m<<=i*2;
zq=tabmap[zz*16+j*4+i]/16; //qu hao
zc=(tabmap[zz*16+j*4+i]%16)/4; //chstatus in zone
zn=(tabmap[zz*16+j*4+i]%16)%4; //ch in chstatus
n=wrstatus0(zq+zc);
n=tabgal[zn]&n|m; //
wrstatus0(zq+zc)=n; //
n=0;
//statufg(zz)=0x01;
}
}
} //if
//}//zone
}
void refrstatus(uchar zone)
{uchar i,zz,j,m;
//for(zz=0;zz<4;zz++) h
zz=zone;
if(zz<2)
j=0x80; //da7=1;da4,da3=0;
else
j=0x88;
if (statufg(zz)!=0) //refresh flag;;
{for(i=0;i<4;i++)
{if((zz==0x01)||(zz==0x03))
m=i+4;
else
m=i;
_nop_();
XBYTE[dridata]=wrstatus0(zz+i); //0x00; //sleep
_nop_();
XBYTE[driadds]=m|j; //0
_nop_();
_nop_();
XBYTE[driadds]=0x00;
_nop_();
_nop_();
XBYTE[driadds]=0xff ; //0
_nop_();
}
dispprg();
statufg(zz)=0;
}
// }
}
void set88346(uchar ldadds,uchar ld8chan,uchar dat2dah,uchar dat2dal)
{uchar i ,j,k;
j=0xff;// 0xfa;
//XBYTE[dridata]=(j&0x7f)|scalefg; //j; //set load h
//XBYTE[driadds]=scldata; //set load h
//XBYTE[driadds]=noselect;
XBYTE[dridata]=0x00 ;//0x00//(j&0x7f)|scalefg; //j; //set load h
_nop_();
XBYTE[driadds]=ldadds ; //scldata; //set load h
_nop_();
XBYTE[driadds]=noselect;
_nop_();
// j=j&0x3f|k;
for(i=0;i<4;i++)
{_nop_();
XBYTE[dridata]=(j&0x7e) ; //j&0xfe; //
_nop_();
XBYTE[driadds]=scldata; //
_nop_();
XBYTE[driadds]=noselect; //slck=0
_nop_();
k=(dat2dah>>2)&0x02; //pick d6
j=j&0xfc|k;
XBYTE[dridata]=j; //j; //
_nop_();
XBYTE[driadds]=scldata; //
_nop_();
XBYTE[driadds]=noselect; //slck=0 and data
_nop_();
XBYTE[dridata]=j|0x01; //j|0x01; //
_nop_();
XBYTE[driadds]=scldata; //
_nop_();
XBYTE[driadds]=noselect; //slck=1
_nop_();
// XBYTE[dridata]=(j&0x7e) ; //j&0xfe; //
// _nop_();
/// XBYTE[driadds]=scldata; //
// _nop_();
// XBYTE[driadds]=noselect; //slck=0
// _nop_();
dat2dah<<=1;
}
for(i=0;i<8;i++)
{_nop_();
XBYTE[dridata]=(j&0x7e) ; //j&0xfe; //
_nop_();
XBYTE[driadds]=scldata; //
_nop_();
XBYTE[driadds]=noselect; //slck=0
_nop_();
k=(dat2dal>>6)&0x02; //pick d6
j=j&0xfc|k;
XBYTE[dridata]=j; //j; //
_nop_();
XBYTE[driadds]=scldata; //
_nop_();
XBYTE[driadds]=noselect; //slck=0 and data
_nop_();
XBYTE[dridata]=j|0x01; //j|0x01; //
_nop_();
XBYTE[driadds]=scldata; //
_nop_();
XBYTE[driadds]=noselect; //slck=1
_nop_();
// XBYTE[dridata]=(j&0x7e) ; //j&0xfe; //
// _nop_();
// XBYTE[driadds]=scldata; //
// _nop_();
// XBYTE[driadds]=noselect; //slck=0
// _nop_();
dat2dal<<=1;
}
XBYTE[dridata]=l
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -