📄 cdt0.c
字号:
}
sjzz60();
}
else
{
if(cdt_zlmark0==0x44)
{
cos_out_pointer0=cos_in_pointer0;
sjzz60();
}
else
{
if(cdt_zcj0<3)
{
sjzz60();
}
else
{
sjyxbw0();
}
}
}
}
}
/*********soe***********/
void sjsoe0 (void)
{
cdt_zlmark0=0x45;
com0_tl(cdt_in_counter0,0)=com0_para(4);
com0_tl(cdt_in_counter0,1)=com0_para(5);
com0_tl(cdt_in_counter0,2)=com0_para(4);
com0_tl(cdt_in_counter0,3)=com0_para(5);
com0_tl(cdt_in_counter0,4)=com0_para(4);
com0_tl(cdt_in_counter0,5)=com0_para(5);
com0_tl(cdt_in_counter0,6)=soez[0];
com0_tl(cdt_in_counter0,7)=soez[1];
com0_tl(cdt_in_counter0,8)=soez[2];
com0_tl(cdt_in_counter0,9)=com0_para(8);//soez[3];
com0_tl(cdt_in_counter0,10)=soez[4];
com0_tl(cdt_in_counter0,11)=bch0(6);
com0_tl(cdt_in_counter0,12)=cdt_soe_data0(soe_out_pointer0+0);
com0_tl(cdt_in_counter0,13)=cdt_soe_data0(soe_out_pointer0+1);
com0_tl(cdt_in_counter0,14)=cdt_soe_data0(soe_out_pointer0+2);
com0_tl(cdt_in_counter0,15)=cdt_soe_data0(soe_out_pointer0+3);
com0_tl(cdt_in_counter0,16)=cdt_soe_data0(soe_out_pointer0+4);
com0_tl(cdt_in_counter0,17)=bch0(12);
com0_tl(cdt_in_counter0,18)=cdt_soe_data0(soe_out_pointer0+6);
com0_tl(cdt_in_counter0,19)=cdt_soe_data0(soe_out_pointer0+7);
com0_tl(cdt_in_counter0,20)=cdt_soe_data0(soe_out_pointer0+8);
com0_tl(cdt_in_counter0,21)=cdt_soe_data0(soe_out_pointer0+9);
com0_tl(cdt_in_counter0,22)=cdt_soe_data0(soe_out_pointer0+10);
com0_tl(cdt_in_counter0,23)=bch0(18);
cdt_tc0[cdt_in_counter0]=24;
cdt_in_counter0^=0x01;
cdt_bz0_a0=0;
cdt_soejs0--;
if (cdt_soejs0==0)
{
cdt_soejs0=0;
soe_out_pointer0+=12;
if (soe_out_pointer0>=1200) soe_out_pointer0=0;
}
}
/************组报头**********/
void sjzz120 (void)
{
cdt_f_cl0();
cdt_zlmark0=*(cdt_zxta[cdt_yc_num0]+cdt_zxcount0);
cdt_zxcount0++;
if ((cdt_zlmark0==cdt_zmark0)&&(cdt_soejs0!=0)) cdt_bz0_a0=0x01;
cdt_zcj0=cdt_f_led0[cdt_zlmark0-0x41];
cdt_gong0=gongg[cdt_zlmark0-0x41];
cdt_sjta0=(__far IO_BYTE*)com_sjdz0[cdt_zlmark0-0x41];
com0_tl(cdt_in_counter0,0)=com0_para(4);
com0_tl(cdt_in_counter0,1)=com0_para(5);
com0_tl(cdt_in_counter0,2)=com0_para(4);
com0_tl(cdt_in_counter0,3)=com0_para(5);
com0_tl(cdt_in_counter0,4)=com0_para(4);
com0_tl(cdt_in_counter0,5)=com0_para(5);
com0_tl(cdt_in_counter0,6)=*tbz[cdt_zlmark0-0x41];
com0_tl(cdt_in_counter0,7)=*(tbz[cdt_zlmark0-0x41]+1);
com0_tl(cdt_in_counter0,8)=cdt_zcj0;
com0_tl(cdt_in_counter0,9)=com0_para(8);//*(tbz[cdt_zlmark0-0x41]+3);
com0_tl(cdt_in_counter0,10)=*(tbz[cdt_zlmark0-0x41]+4);
com0_tl(cdt_in_counter0,11)=bch0(6);
cdt_tc0[cdt_in_counter0]=12;
cdt_in_counter0^=0x01;
cdt_zxj0--;
}
/**********组信息字***********/
void sjzz60 (void)
{
if ((cdt_zcj0==0x01)&&(cdt_zlmark0==cdt_zmark0))
{
com0_tl(cdt_in_counter0,0)=0x8a;
com0_tl(cdt_in_counter0,1)=zbzc0[0];
com0_tl(cdt_in_counter0,2)=zbzc0[1];
com0_tl(cdt_in_counter0,3)=zbzc0[0];
com0_tl(cdt_in_counter0,4)=zbzc0[1];
com0_tl(cdt_in_counter0,5)=bch0(0);
cdt_gong0++;
cdt_zcj0--;
cdt_tc0[cdt_in_counter0]=0x06;
cdt_in_counter0^=0x01;
}
else
{
com0_tl(cdt_in_counter0,0)=cdt_gong0++;
com0_tl(cdt_in_counter0,1)=*cdt_sjta0++;
com0_tl(cdt_in_counter0,2)=*cdt_sjta0++;
com0_tl(cdt_in_counter0,3)=*cdt_sjta0++;
com0_tl(cdt_in_counter0,4)=*cdt_sjta0++;
com0_tl(cdt_in_counter0,5)=bch0(0);
cdt_zcj0--;
cdt_tc0[cdt_in_counter0]=0x06;
cdt_in_counter0^=0x01;
}
}
/*********计算板数**********/
void cdt_f_cl0 (void)
{
IO_BYTE i,j,k;
i=0;j=0x10;
k=cdt_yc_num0;
if (k>2)
{
k-=2;
if(k>6) k=6;
i=k*0x10;
}
cdt_f_led0[0]=j;
cdt_f_led0[1]=j;
cdt_f_led0[2]=i;
k=cdt_yx_num0;
if(k>16) k=16;
cdt_f_led0[3]=k;
}
void cdt_cl_num0(void)
{
IO_WORD i;
i=com0_para(12);
i=(i<<8)+com0_para(11);
cdt_yc_num0=(i+31)/32;
i=com0_para(14);
i=(i<<8)+com0_para(13);
cdt_yx_num0=(i+31)/32;
}
void cdt_yccl0(void)
{
IO_WORD l,data;
l=com0_para(12);
l=(l<<8)+com0_para(11);
if ((yc_fm_para0x(yc_fm0_counter*3)==0xffff)||(yc_fm0_counter>l))//系数为0xffff返回
{
yc_fm0_counter=0;
return;
}
else
{
switch (yc_fm_para0(yc_fm0_counter*6))//判功能码
{
case 0x00: //new
if((yc_fm_para0(yc_fm0_counter*6+1)&0x3f)==0x3c)
{
l=yc_fm_para0x(yc_fm0_counter*3+1);
data=ioyc_1lx(l)&0x0fff;
yc_2l_0x(yc_fm0_counter)=data;
yc_fm0_counter++;
}
else
{
l=(yc_fm_para0(yc_fm0_counter*6+1)-1)*18+yc_fm_para0x(yc_fm0_counter*3+1);
data=yc_1lx(l)&0x0fff;
yc_2l_0x(yc_fm0_counter)=data;
yc_fm0_counter++;
}
break;
case 0x01: //FC
break;
case 0x02: //MCK
l=(yc_fm_para0(yc_fm0_counter*6+1)-1)*18+yc_fm_para0x(yc_fm0_counter*3+1);//偏移量
data=(yc_1lx(l)>>4)&0x0fff;//取数
yc_2l_0x(yc_fm0_counter)=data;
yc_fm0_counter++;
break;
case 0x03: //MTY
l=(yc_fm_para0(yc_fm0_counter*6+1)-1)*18+yc_fm_para0x(yc_fm0_counter*3+1);
data=(yc_1lx(l)>>4)&0x0fff;
yc_2l_0x(yc_fm0_counter)=data;
yc_fm0_counter++;
break;
case 0x04: //转发
if((yc_fm_para0(yc_fm0_counter*6+1)&0x3f)==0x3c)
{
l=yc_fm_para0x(yc_fm0_counter*3+1);
data=ioyc_1lx(l)&0x0fff;
yc_2l_0x(yc_fm0_counter)=data;
yc_fm0_counter++;
}
else
{
l=(yc_fm_para0(yc_fm0_counter*6+1)-1)*18+yc_fm_para0x(yc_fm0_counter*3+1);
data=yc_1lx(l)&0x0fff;
yc_2l_0x(yc_fm0_counter)=data;
yc_fm0_counter++;
}
break;
case 0x05: //周波
break;
case 0x06: //总加
break;
}
}
}
void cdt_ddcl0(void)
{
IO_WORD l,datal,datah;
IO_BYTE sort;
l=com0_para(16);
l=(l<<8)+com0_para(15);
if((dd_fm0_counter>=l)||(dd_fm_para0(dd_fm0_counter*2)==0xff))
{
dd_fm0_counter=0;
}
sort=dd_fm_para0(dd_fm0_counter*2);
sort=(sort>>6)&0x03;
switch (sort)//判模块类型
{
case 0x00: //new
if((dd_fm_para0(dd_fm0_counter*2)&0x3f)==0x3c)
{
l=dd_fm_para0(dd_fm0_counter*2+1);
datal=iodd_1lx(l*2);
datah=iodd_1lx(l*2+1)&0x20ff;
dd_2l_0x(dd_fm0_counter*2)=datal;
dd_2l_0x(dd_fm0_counter*2+1)=datah;
dd_fm0_counter++;
}
else
{
l=((dd_fm_para0(dd_fm0_counter*2)&0x3f)-1)*4+dd_fm_para0(dd_fm0_counter*2+1);//偏移量
datal=dd_1lx(l*2); //取数
datah=dd_1lx(l*2+1)&0x20ff;
dd_2l_0x(dd_fm0_counter*2)=datal;
dd_2l_0x(dd_fm0_counter*2+1)=datah;
dd_fm0_counter++;
}
break;
case 0x01: //MCK
break;
case 0x02: //转发
if((dd_fm_para0(dd_fm0_counter*2)&0x3f)==0x3c)
{
l=dd_fm_para0(dd_fm0_counter*2+1);
datal=iodd_1lx(l*2);
datah=iodd_1lx(l*2+1)&0x20ff;
dd_2l_0x(dd_fm0_counter*2)=datal;
dd_2l_0x(dd_fm0_counter*2+1)=datah;
dd_fm0_counter++;
}
else
{
l=((dd_fm_para0(dd_fm0_counter*2)&0x3f)-1)*4+dd_fm_para0(dd_fm0_counter*2+1);//偏移量
datal=dd_1lx(l*2); //取数
datah=dd_1lx(l*2+1)&0x20ff;
dd_2l_0x(dd_fm0_counter*2)=datal;
dd_2l_0x(dd_fm0_counter*2+1)=datah;
dd_fm0_counter++;
}
break;
case 0x03: //备用
break;
}
}
void cdt_move0(void)
{
IO_WORD i,l,bb,n,ll;
IO_BYTE k,j;
i=com0_para(14);
i=(i<<8)|com0_para(13);
if (i>512) i=512;
i=(i+0x0f)&0xfff0;
if((yx_fm0_counter*32)>=i)
{
yx_fm0_counter=0;
}
for(bb=0;bb<2;bb++)
{
l=0x00;
for (k=0;k<16;k++)
{
ll=(yx_fm0_counter<<6)+bb*32+k*2;
l=l>>1;
if (yx_fm_para0(ll)!=0xff)
{
if((yx_fm_para0(ll)&0x3f)==0x3c)
{
n=yx_fm_para0(ll+1)/8;
j=ioyx_1l(n)<<(7-(yx_fm_para0(ll+1)%8));
l=l|((j&0x80)<<8);
}
else
{
n=((yx_fm_para0(ll)&0x3f)-1)<<3;
n=yx_fm_para0(ll+1)/8+n;
j=yx_1l(n)<<(7-(yx_fm_para0(ll+1)%8));
l=l|((j&0x80)<<8);
}
}
}
yx_3l_0x(yx_fm0_counter*2+bb)=l;
}
}
void cdt_yxcl0(void)
{
unsigned long d;
cdt_move0();
if(power_count!=0)
{
if (yx_fm0_counter!=0)
{
yx_2l_0x(yx_fm0_counter*2)=yx_3l_0x(yx_fm0_counter*2);
yx_2l_0x(yx_fm0_counter*2+1)=yx_3l_0x(yx_fm0_counter*2+1);
yx_fm0_counter++;
}
else
{
power_count--;
yx_2l_0x(yx_fm0_counter*2)=yx_3l_0x(yx_fm0_counter*2);
yx_2l_0x(yx_fm0_counter*2+1)=yx_3l_0x(yx_fm0_counter*2+1);
yx_fm0_counter++;
}
}
else
{
d=yx_3l_0x(yx_fm0_counter*2+1)^yx_2l_0x(yx_fm0_counter*2+1);
d=(d<<16)|(yx_3l_0x(yx_fm0_counter*2)^yx_2l_0x(yx_fm0_counter*2));
if(d!=0)
{
cdt_cos_datcl0(yx_fm0_counter);
cdt_soe_datcl0(yx_fm0_counter,d);
}
yx_fm0_counter+=1;
}
}
void cdt_rec0(void) //////////////COM0 接收中断
{
IO_BYTE i,j;
com_int_tmout[0]=0; //add 03-2-8
com0_rl(cdt_rc10)=com_port0_dat; //接收
cdt_rc10++;
cdt_rc0++;
if (cdt_rc10>63) cdt_rc10=cdt_rc0=0;
/* i=0x01;
rrb0(i);
i&=0x10;
if (i!=0)
{
i=0x00;j=0x30;
wrb0(i,j);
}*/
i=0x00;j=0x38;
wrb0(i,j);
cdt_time_mark0=0;
}
void yksele0(IO_BYTE l)
{
IO_BYTE k;
k=bchr0(l+8);
if((com0_rl1(l+8)==0xe0) && (com0_rl1(l+13)==k))
{
cyksm1();
cyk_sel_num=com0_rl1(l+10);
cyk_sel_num=(cyk_sel_num<<8)+com0_rl1(l+11);
cdt_ykmark0=0x10;
yktime1=18000;
yktime=0x00;
//yk_time1=1;
}
}
void ykexcu0(IO_BYTE l)
{
if((com0_rl1(l+8)==0xe2) && com0_rl1(l+13)==bchr0(l+8))
{
cyk_exe_num=com0_rl1(l+10);
cyk_exe_num=(cyk_exe_num<<8)+com0_rl1(l+11);
cdt_ykmark0=0x10;
yk_time=0x0;
//yk_time1=1;
}
}
void ykcanc0(IO_BYTE l)
{
if((com0_rl1(l+8)==0xe3) && com0_rl1(l+13)==bchr0(l+8))
{
cyk_chx_num=com0_rl1(l+10);
cyk_chx_num=(cyk_chx_num<<8)+com0_rl1(l+11);
cdt_ykmark0=0x10;
//yk_time1=1;
}
}
/***********对时************/
void upda_time0(IO_BYTE l)
{
if((com0_rl1(l+8)==0xee) && com0_rl1(l+13)==bchr0(l+8)&& (com0_rl1(l+14)==0xef) && com0_rl1(l+19)==bchr0(l+14))
{
sys_msecond=(com0_rl1(l+10)<<8)+(com0_rl1(l+9)&0x00ff)+500;
sys_second=com0_rl1(l+11);
second=com0_rl1(l+11);
sys_minute=com0_rl1(l+12);
minute=com0_rl1(l+12);
sys_hour=com0_rl1(l+15);
sys_day=com0_rl1(l+16);
sys_month=com0_rl1(l+17);
sys_year=com0_rl1(l+18);
}
}
/**********接收处理**********/
void cdt_rec_cl0(void)
{
IO_BYTE i,l,k;
l=cdt_rc0;
for (i=0;i<l;i++) com0_rl1(i)=com0_rl(i);
cdt_rc0=cdt_rc10=0;
for (i=0;i<l;i++)
{
if ((com0_rl1(i)==com0_para(4))&&(com0_rl1(i+1)==com0_para(5))&&(com0_rl1(i+2)==0x71)&&(com0_rl1(i+6)==com0_para(8)))
{
k=bchr0(i+2);
if(com0_rl1(i+7)==k)
{
cdt_type0=com0_rl1(i+3);
switch(cdt_type0)
{
case 0x61: yksele0(i); //遥控选择
break;
case 0xc2: ykexcu0(i); //遥控执行
break;
case 0xb3: ykcanc0(i); //遥控撤消
break;
case 0xf4: yksele0(i); //遥调选择
break;
case 0x85: ykexcu0(i); //遥调执行
break;
case 0x26: ykcanc0(i); //遥调撤消
break;
case 0x7a: upda_time0(i);//对时
break;
}
}
return;
}
}
}
void cdt_cos_datcl0(IO_WORD m)
{
cdt_cos_data0(cos_in_pointer0+0)=0xf0+m;
cdt_cos_data0(cos_in_pointer0+1)=yx_3l_0(m*4);
cdt_cos_data0(cos_in_pointer0+2)=yx_3l_0(m*4+1);
cdt_cos_data0(cos_in_pointer0+3)=yx_3l_0(m*4+2);
cdt_cos_data0(cos_in_pointer0+4)=yx_3l_0(m*4+3);
cos_in_pointer0+=6;
if (cos_in_pointer0>=600) cos_in_pointer0=0;
yx_2l_0(m*4)=yx_3l_0(m*4);
yx_2l_0(m*4+1)=yx_3l_0(m*4+1);
yx_2l_0(m*4+2)=yx_3l_0(m*4+2);
yx_2l_0(m*4+3)=yx_3l_0(m*4+3);
}
void cdt_soe_datcl0(IO_WORD m,unsigned long int d)
{
IO_BYTE s;
unsigned long int e,l;
for(s=0;s<32;s++)
{
e=d;
if(e&0x01)
{
cdt_soe_data0(soe_in_pointer0+0)=0x80;
cdt_soe_data0(soe_in_pointer0+1)=sys_msecond&0x00ff;
cdt_soe_data0(soe_in_pointer0+2)=(sys_msecond>>8)&0x00ff;
cdt_soe_data0(soe_in_pointer0+3)=sys_second;
cdt_soe_data0(soe_in_pointer0+4)=sys_minute;
cdt_soe_data0(soe_in_pointer0+6)=0x81;
cdt_soe_data0(soe_in_pointer0+7)=sys_hour;
cdt_soe_data0(soe_in_pointer0+8)=sys_day;
cdt_soe_data0(soe_in_pointer0+9)=(m*32+s)&0x00ff;
l=yx_3l_0x(m*2+1);
l=(l<<16)|yx_3l_0x(m*2);
if((l>>s)&0x01)
cdt_soe_data0(soe_in_pointer0+10)=((m*32+s)>>8)|0x80;
else {cdt_soe_data0(soe_in_pointer0+10)=(m*32+s)>>8; }
soe_in_pointer0+=12;
if (soe_in_pointer0>=1200) soe_in_pointer0=0;
}
d>>=0x01;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -