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

📄 cdt0.c

📁 关于电力CDT规约的程序.超值啊!对于学习CDT的有帮助.
💻 C
📖 第 1 页 / 共 3 页
字号:
    if ((run_mark_a1==1)&&(run_mark_a0==0))
    {
      if(com_int_tmout[0]>3)
      {
       // PDR5_P51=0;//03-1-12
    //__wait_nop();
   //__wait_nop();
    //PDR5_P51=1;
    WDTC_WTE=0;
    __DI();
	com_int_tmout[0]=0;
	init_com0();
	ICR02=6;
	__EI();
      }
    }
}
/*********大循环完成*********/
void    sjch0 (void)
{
  if(soe_in_pointer0_bak!=soe_out_pointer0) 
  {
  	 cdt_soejs0=3;
  	 soe_txmark0_d0=0x01;//sending soe
  }
  cdt_f_cl0();
  if(cdt_yc_num0>8) cdt_yc_num0=8;
  cdt_zxj0=zcou[cdt_yc_num0];
  cdt_zmark0=zbzz[cdt_yc_num0];
  cdt_zxcount0=0;
  sjzz120();
}
/*********电度*********/
void    sjdd0 (void)
{    
  /*  IO_WORD a;
    if(cdt_bz0_a1==1)    ////定时电度标志
    {      
      a=com0_para(16);
      a=(a<<8)+com0_para(15);
      cdt_dd_num0=a;    
      if(a>64) a=64;      
      cdt_zlmark0=0x46;
      cdt_zxcount0++;
      cdt_zcj0=a;
      cdt_gong0=0xa0;
      cdt_sjta0=(__far IO_BYTE*) (&dd_2l_0(0));
      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)=ddzz[0];
      com0_tl(cdt_in_counter0,7)=ddzz[1];
      com0_tl(cdt_in_counter0,8)=cdt_zcj0;
      com0_tl(cdt_in_counter0,9)=com0_para(8);//ddzz[3];
      com0_tl(cdt_in_counter0,10)=ddzz[4];
      com0_tl(cdt_in_counter0,11)=bch0(6);      
      cdt_tc0[cdt_in_counter0]=12;
      cdt_in_counter0^=0x01;
      cdt_zxj0--;
      cdt_bz0_a1=0;//////清电度标志
      cdt_dd_time0=0;              
    }    
    else*/
    
    	sjzz120();
       
}
/**********组变位*********/
void sjyxbw0(void)
{
    com0_tl(cdt_in_counter0,0)=cdt_cos_data0(cos_out_pointer0+0);
    com0_tl(cdt_in_counter0,1)=cdt_cos_data0(cos_out_pointer0+1);
    com0_tl(cdt_in_counter0,2)=cdt_cos_data0(cos_out_pointer0+2);
    com0_tl(cdt_in_counter0,3)=cdt_cos_data0(cos_out_pointer0+3);
    com0_tl(cdt_in_counter0,4)=cdt_cos_data0(cos_out_pointer0+4);
    com0_tl(cdt_in_counter0,5)=bch0(0);
    com0_tl(cdt_in_counter0,6)=cdt_cos_data0(cos_out_pointer0+0);
    com0_tl(cdt_in_counter0,7)=cdt_cos_data0(cos_out_pointer0+1);
    com0_tl(cdt_in_counter0,8)=cdt_cos_data0(cos_out_pointer0+2);
    com0_tl(cdt_in_counter0,9)=cdt_cos_data0(cos_out_pointer0+3);
    com0_tl(cdt_in_counter0,10)=cdt_cos_data0(cos_out_pointer0+4);
    com0_tl(cdt_in_counter0,11)=bch0(6);
    com0_tl(cdt_in_counter0,12)=cdt_cos_data0(cos_out_pointer0+0);
    com0_tl(cdt_in_counter0,13)=cdt_cos_data0(cos_out_pointer0+1);
    com0_tl(cdt_in_counter0,14)=cdt_cos_data0(cos_out_pointer0+2);
    com0_tl(cdt_in_counter0,15)=cdt_cos_data0(cos_out_pointer0+3);
    com0_tl(cdt_in_counter0,16)=cdt_cos_data0(cos_out_pointer0+4);
    com0_tl(cdt_in_counter0,17)=bch0(12);
    //
        soe_txmark0_d7=0;
    //
    cos_out_pointer0+=6;
    if (cos_out_pointer0>=600) cos_out_pointer0=0;
    cdt_gong0+=3;
    cdt_zcj0-=3;
    cdt_tc0[cdt_in_counter0]=18;
    cdt_in_counter0^=0x01;
    cdt_sjta0+=12;
}
void ykfj_cl0(void)
{
    if (cdt_ykmark0&01)
    {
        if (cdt_zlmark0==0x44) {sjzz60();return;}
        if (cdt_zcj0<=2) {sjzz60();return;}
        com0_tl(cdt_in_counter0,0)=0xe1;
        com0_tl(cdt_in_counter0,1)=yk_xz;
        com0_tl(cdt_in_counter0,2)=yk_dx;
        com0_tl(cdt_in_counter0,3)=yk_xz;
        com0_tl(cdt_in_counter0,4)=yk_dx;
        com0_tl(cdt_in_counter0,5)=bch0(0);
        com0_tl(cdt_in_counter0,6)=0xe1;
        com0_tl(cdt_in_counter0,7)=yk_xz;
        com0_tl(cdt_in_counter0,8)=yk_dx;
        com0_tl(cdt_in_counter0,9)=yk_xz;
        com0_tl(cdt_in_counter0,10)=yk_dx;
        com0_tl(cdt_in_counter0,11)=bch0(6);
        com0_tl(cdt_in_counter0,12)=0xe1;
        com0_tl(cdt_in_counter0,13)=yk_xz;
        com0_tl(cdt_in_counter0,14)=yk_dx;
        com0_tl(cdt_in_counter0,15)=yk_xz;
        com0_tl(cdt_in_counter0,16)=yk_dx;
        com0_tl(cdt_in_counter0,17)=bch0(12);
        cdt_gong0+=3;
        cdt_zcj0-=3;
        cdt_tc0[cdt_in_counter0]=18;
        cdt_in_counter0^=0x01;
        cdt_ykmark0=0x00;
        cdt_sjta0+=12;
        return;
    }
    if (cdt_ykmark0&02)
    {
        if (cdt_zlmark0==0x44) {sjzz60();return;}
        if (cdt_zcj0<=2) {sjzz60();return;}
        com0_tl(cdt_in_counter0,0)=0xe1;
        com0_tl(cdt_in_counter0,1)=0x00;
        com0_tl(cdt_in_counter0,2)=0x00;
        com0_tl(cdt_in_counter0,3)=yk_xz;
        com0_tl(cdt_in_counter0,4)=yk_dx;
        com0_tl(cdt_in_counter0,5)=bch0(0);
        com0_tl(cdt_in_counter0,6)=0xe1;
        com0_tl(cdt_in_counter0,7)=0x00;
        com0_tl(cdt_in_counter0,8)=0x00;
        com0_tl(cdt_in_counter0,9)=yk_xz;
        com0_tl(cdt_in_counter0,10)=yk_dx;
        com0_tl(cdt_in_counter0,11)=bch0(6);
        com0_tl(cdt_in_counter0,12)=0xe1;
        com0_tl(cdt_in_counter0,13)=0x00;
        com0_tl(cdt_in_counter0,14)=0x00;
        com0_tl(cdt_in_counter0,15)=yk_xz;
        com0_tl(cdt_in_counter0,16)=yk_dx;
        com0_tl(cdt_in_counter0,17)=bch0(12);
        cdt_gong0+=3;
        cdt_zcj0-=3;
        cdt_tc0[cdt_in_counter0]=18;
        cdt_in_counter0^=0x01;
        cdt_sjta0+=12;
        cdt_ykmark0=0x00;
        return;
    }
    cdt_ykmark0=0x00;
    sjzz60();
}
void    sjbw0 (void)
{
    if (cdt_zlmark0==0x46) {sjzz60();}
    else
    {
        if (cos_out_pointer0==cos_in_pointer0)
        {
          if(cdt_ykmark0&0x80)
          {
            ykfj_cl0();
            return;
          }
          sjzz60();
        }
        else
        {
          if(cdt_zlmark0==0x44)
          {
          	 //
        		soe_txmark0_d7=0;
    		 //
            cos_out_pointer0=cos_in_pointer0;
            sjzz60();
          }
          else
          {
            if(cdt_zcj0<3)
            {
              sjzz60();
            }
            else
            {
              sjyxbw0();
            }
          }
        }
    }
}
/*********soe***********/
void    sjsoe0 (void)
{
    cdt_zlmark0=0x45;
    //
    soe_flen0=(soe_in_pointer0_bak-soe_out_pointer0+1200U)%1200U;
    if(soe_flen0>=108u) soe_flen0=108u;
    soe_flen0=soe_flen0/6u;
    //
    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)=soe_flen0;//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);
//
	for(soe_flen0_bak=0,soe_num0=0;soe_flen0_bak<6u*soe_flen0;soe_flen0_bak+=12u,soe_num0+=12u)
	{
//
	//wat_rst();
    WDTC_WTE=0;
//	
    com0_tl(cdt_in_counter0,soe_num0+12)=cdt_soe_data0((soe_out_pointer0+0+soe_flen0_bak)%1200u);
    com0_tl(cdt_in_counter0,soe_num0+13)=cdt_soe_data0((soe_out_pointer0+1+soe_flen0_bak)%1200u);
    com0_tl(cdt_in_counter0,soe_num0+14)=cdt_soe_data0((soe_out_pointer0+2+soe_flen0_bak)%1200u);
    com0_tl(cdt_in_counter0,soe_num0+15)=cdt_soe_data0((soe_out_pointer0+3+soe_flen0_bak)%1200u);
    com0_tl(cdt_in_counter0,soe_num0+16)=cdt_soe_data0((soe_out_pointer0+4+soe_flen0_bak)%1200u);
    com0_tl(cdt_in_counter0,soe_num0+17)=bch0(soe_num0+12);
    com0_tl(cdt_in_counter0,soe_num0+18)=cdt_soe_data0((soe_out_pointer0+6+soe_flen0_bak)%1200u);
    com0_tl(cdt_in_counter0,soe_num0+19)=cdt_soe_data0((soe_out_pointer0+7+soe_flen0_bak)%1200u);
    com0_tl(cdt_in_counter0,soe_num0+20)=cdt_soe_data0((soe_out_pointer0+8+soe_flen0_bak)%1200u);
    com0_tl(cdt_in_counter0,soe_num0+21)=cdt_soe_data0((soe_out_pointer0+9+soe_flen0_bak)%1200u);
    com0_tl(cdt_in_counter0,soe_num0+22)=cdt_soe_data0((soe_out_pointer0+10+soe_flen0_bak)%1200u);
    com0_tl(cdt_in_counter0,soe_num0+23)=bch0(soe_num0+18);
	
	}
    
    cdt_tc0[cdt_in_counter0]=soe_num0+12u;//24;
    cdt_in_counter0^=0x01;
    cdt_bz0_a0=0;
    cdt_soejs0--;
    if (cdt_soejs0==0)
    {
        cdt_soejs0=0;
        soe_txmark0_d0=0;
        //soe_out_pointer0+=12;
        soe_out_pointer0=(soe_flen0*6u+soe_out_pointer0)%1200u;
        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++;
    //06-08-09
    if(soe_txmark0_d0==0x01)
    	cdt_zlmark0=cdt_zmark0;
    //
    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;
    }

⌨️ 快捷键说明

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