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

📄 cdt.c

📁 关于电力CDT规约的程序.超值啊!对于学习CDT的有帮助.
💻 C
📖 第 1 页 / 共 3 页
字号:
        cdt_tc1++;
        cdt_tc[cdt_out_counter]--;
    }
}
/**********中断定时器*************/
void cdt_cltime(void)
{
    cdt_start_send();
    cdt_start_send0();
    msecond+=5;
    cdt_time_mark++;
    cdt_time_mark0++;
    if(msecond>=1000)
    {
 //       delay_time1++;
 //       if(r_mark==1) delay_time1=0;
        if (run_mark_a0==1) run_time1++;
        second+=1;
        msecond=0;
        sys_second=sys_second+1;
		/////////////			add 03----2---8
		com_int_tmout[0]++;
   		com_int_tmout[1]++;
		/* if(com_int_tmout[0]<20)
		{
			com_int_tmout[0]++;
		}
		else
		{
			com_int_tmout[0]=0;
			init_flag[0]=1;
		}
		/////
		if(com_int_tmout[1]<20)
		{
			com_int_tmout[1]++;
		}
		else
		{
			com_int_tmout[1]=0;
			init_flag[1]=1;
		} */
    }
    if(second>59)
    {
        minute+=1;
        second=0;
        sys_minute+=1;sys_second=0;
    /* if(minute%5==0 && minute!=0) soe_mark=1;soejs=3;xk_mark=1;xt_mark=1; */
    }
    if(minute>59)
    {
        minute=0;
        sys_hour+=1;sys_minute=0;
    }
    if(sys_hour>=24){sys_day+=1;sys_hour=0;}
}
//--------------------------------------------------------
void cdt_cl(void)
{
    if(cdt_rc!=0)
    {
        if(cdt_time_mark>10)
        {
            cdt_rec_cl();
        }
    }
    if (cdt_tmark_a0==0)
    {
        switch (cdt_zcj)
        {
            case 0x00:
            //06-08-09
    		if((soe_in_pointer!=soe_out_pointer)&&(soe_txmark1_d0==0))
    	
    		if((soe_txmark1_d7==0)&&(cos_in_pointer==cos_out_pointer))
    		{
    			soe_in_pointer1_bak=soe_in_pointer;
    			cdt_zcj=0x00;
    			cdt_zxj=0x00;
    		}
    		//
                switch (cdt_zxj)
                {
                    case 0x00:
                        sjch(); //soe
                        break;
                    case 0x01:
                        sjdd();//电度
                        break;
                    default :
                        if (cdt_bz_a0==1) {sjsoe();} else {sjzz12();}
                }
                break;
            default :   sjbw();
        }
        cdt_tmark_a0=1;
    }
    if ((run_mark_a1==1)&&(run_mark_a0==0))
    {
      if(com_int_tmout[1]>3)
      {
        //PDR5_P51=0;//03-1-12
    //__wait_nop();
    //__wait_nop();
    //PDR5_P51=1;
    WDTC_WTE=0;
    __DI();
	com_int_tmout[1]=0;
	init_com1();
	ICR02=6;
	__EI();
      }
    }
}
/*********大循环完成*********/
void    sjch (void)
{
  if(soe_in_pointer1_bak!=soe_out_pointer)
  { 
  	cdt_soejs=3;
  	soe_txmark1_d0=0x01;//sending soe
  }
  cdt_f_cl();
  if(cdt_yc_num>8) cdt_yc_num=8;
  cdt_zxj=zcou[cdt_yc_num];
  cdt_zmark=zbzz[cdt_yc_num];
  cdt_zxcount=0;
  sjzz12();
}
/*********电度*********/
void    sjdd (void)
{
    sjzz12();
}
/**********组变位*********/
void sjyxbw(void)
{
    com1_tl(cdt_in_counter,0)=cdt_cos_data(cos_out_pointer+0);
    com1_tl(cdt_in_counter,1)=cdt_cos_data(cos_out_pointer+1);
    com1_tl(cdt_in_counter,2)=cdt_cos_data(cos_out_pointer+2);
    com1_tl(cdt_in_counter,3)=cdt_cos_data(cos_out_pointer+3);
    com1_tl(cdt_in_counter,4)=cdt_cos_data(cos_out_pointer+4);
    com1_tl(cdt_in_counter,5)=bch(0);
    com1_tl(cdt_in_counter,6)=cdt_cos_data(cos_out_pointer+0);
    com1_tl(cdt_in_counter,7)=cdt_cos_data(cos_out_pointer+1);
    com1_tl(cdt_in_counter,8)=cdt_cos_data(cos_out_pointer+2);
    com1_tl(cdt_in_counter,9)=cdt_cos_data(cos_out_pointer+3);
    com1_tl(cdt_in_counter,10)=cdt_cos_data(cos_out_pointer+4);
    com1_tl(cdt_in_counter,11)=bch(6);
    com1_tl(cdt_in_counter,12)=cdt_cos_data(cos_out_pointer+0);
    com1_tl(cdt_in_counter,13)=cdt_cos_data(cos_out_pointer+1);
    com1_tl(cdt_in_counter,14)=cdt_cos_data(cos_out_pointer+2);
    com1_tl(cdt_in_counter,15)=cdt_cos_data(cos_out_pointer+3);
    com1_tl(cdt_in_counter,16)=cdt_cos_data(cos_out_pointer+4);
    com1_tl(cdt_in_counter,17)=bch(12);
    //
        soe_txmark1_d7=0;
    //
    cos_out_pointer+=6;
    if (cos_out_pointer>=600) cos_out_pointer=0;
    cdt_gong+=3;
    cdt_zcj-=3;
    cdt_tc[cdt_in_counter]=18;
    cdt_in_counter^=0x01;
    cdt_sjta+=12;
}
void ykfj_cl(void)
{
    if (cdt_ykmark&01)
    {
        if (cdt_zlmark==0x44) {sjzz6();return;}
        if (cdt_zcj<=2) {sjzz6();return;}
        com1_tl(cdt_in_counter,0)=0xe1;
        com1_tl(cdt_in_counter,1)=yk_xz;
        com1_tl(cdt_in_counter,2)=yk_dx;
        com1_tl(cdt_in_counter,3)=yk_xz;
        com1_tl(cdt_in_counter,4)=yk_dx;
        com1_tl(cdt_in_counter,5)=bch(0);
        com1_tl(cdt_in_counter,6)=0xe1;
        com1_tl(cdt_in_counter,7)=yk_xz;
        com1_tl(cdt_in_counter,8)=yk_dx;
        com1_tl(cdt_in_counter,9)=yk_xz;
        com1_tl(cdt_in_counter,10)=yk_dx;
        com1_tl(cdt_in_counter,11)=bch(6);
        com1_tl(cdt_in_counter,12)=0xe1;
        com1_tl(cdt_in_counter,13)=yk_xz;
        com1_tl(cdt_in_counter,14)=yk_dx;
        com1_tl(cdt_in_counter,15)=yk_xz;
        com1_tl(cdt_in_counter,16)=yk_dx;
        com1_tl(cdt_in_counter,17)=bch(12);
        cdt_gong+=3;
        cdt_zcj-=3;
        cdt_tc[cdt_in_counter]=18;
        cdt_in_counter^=0x01;
        cdt_ykmark=0x00;
        cdt_sjta+=12;
        return;
    }
    if (cdt_ykmark&02)
    {
        if (cdt_zlmark==0x44) {sjzz6();return;}
        if (cdt_zcj<=2) {sjzz6();return;}
        com1_tl(cdt_in_counter,0)=0xe1;
        com1_tl(cdt_in_counter,1)=0x00;
        com1_tl(cdt_in_counter,2)=0x00;
        com1_tl(cdt_in_counter,3)=yk_xz;
        com1_tl(cdt_in_counter,4)=yk_dx;
        com1_tl(cdt_in_counter,5)=bch(0);
        com1_tl(cdt_in_counter,6)=0xe1;
        com1_tl(cdt_in_counter,7)=0x00;
        com1_tl(cdt_in_counter,8)=0x00;
        com1_tl(cdt_in_counter,9)=yk_xz;
        com1_tl(cdt_in_counter,10)=yk_dx;
        com1_tl(cdt_in_counter,11)=bch(6);
        com1_tl(cdt_in_counter,12)=0xe1;
        com1_tl(cdt_in_counter,13)=0x00;
        com1_tl(cdt_in_counter,14)=0x00;
        com1_tl(cdt_in_counter,15)=yk_xz;
        com1_tl(cdt_in_counter,16)=yk_dx;
        com1_tl(cdt_in_counter,17)=bch(12);
        cdt_gong+=3;
        cdt_zcj-=3;
        cdt_tc[cdt_in_counter]=18;
        cdt_in_counter^=0x01;
        cdt_sjta+=12;
        cdt_ykmark=0x00;
        return;
    }
    cdt_ykmark=0x00;
    sjzz6();
}
void    sjbw (void)
{
    if (cdt_zlmark==0x46) {sjzz6();}
    else
    {
        if (cos_out_pointer==cos_in_pointer)
        {
          if(cdt_ykmark&0x80)
          {
            ykfj_cl();
            return;
          }
          sjzz6();
        }
        else
        {
          if(cdt_zlmark==0x44)
          {
          	soe_txmark1_d7==0;
            cos_out_pointer=cos_in_pointer;
            sjzz6();
          }
          else
          {
            if(cdt_zcj<3)
            {
              sjzz6();
            }
            else
            {
              sjyxbw();
            }
          }
        }
    }
}
/*********soe***********/
void    sjsoe (void)
{
    cdt_zlmark=0x45;
    //
    soe_flen1=(soe_in_pointer1_bak-soe_out_pointer+1200U)%1200U;
    if(soe_flen1>=108u) soe_flen1=108u;
    soe_flen1=soe_flen1/6u;
    //
    com1_tl(cdt_in_counter,0)=com1_para(4);
    com1_tl(cdt_in_counter,1)=com1_para(5);
    com1_tl(cdt_in_counter,2)=com1_para(4);
    com1_tl(cdt_in_counter,3)=com1_para(5);
    com1_tl(cdt_in_counter,4)=com1_para(4);
    com1_tl(cdt_in_counter,5)=com1_para(5);
    com1_tl(cdt_in_counter,6)=soez[0];
    com1_tl(cdt_in_counter,7)=soez[1];
    com1_tl(cdt_in_counter,8)=soe_flen1;//soez[2];
    com1_tl(cdt_in_counter,9)=soez[3];
    com1_tl(cdt_in_counter,10)=soez[4];
    com1_tl(cdt_in_counter,11)=bch(6);
//
	for(soe_flen1_bak=0,soe_num1=0;soe_flen1_bak<6u*soe_flen1;soe_flen1_bak+=12u,soe_num1+=12u)
	{
//
	//wat_rst();
    WDTC_WTE=0;
//	
    com1_tl(cdt_in_counter,soe_num1+12)=cdt_soe_data((soe_out_pointer+0+soe_flen1_bak)%1200u);
    com1_tl(cdt_in_counter,soe_num1+13)=cdt_soe_data((soe_out_pointer+1+soe_flen1_bak)%1200u);
    com1_tl(cdt_in_counter,soe_num1+14)=cdt_soe_data((soe_out_pointer+2+soe_flen1_bak)%1200u);
    com1_tl(cdt_in_counter,soe_num1+15)=cdt_soe_data((soe_out_pointer+3+soe_flen1_bak)%1200u);
    com1_tl(cdt_in_counter,soe_num1+16)=cdt_soe_data((soe_out_pointer+4+soe_flen1_bak)%1200u);
    com1_tl(cdt_in_counter,soe_num1+17)=bch(soe_num1+12);
    com1_tl(cdt_in_counter,soe_num1+18)=cdt_soe_data((soe_out_pointer+6+soe_flen1_bak)%1200u);
    com1_tl(cdt_in_counter,soe_num1+19)=cdt_soe_data((soe_out_pointer+7+soe_flen1_bak)%1200u);
    com1_tl(cdt_in_counter,soe_num1+20)=cdt_soe_data((soe_out_pointer+8+soe_flen1_bak)%1200u);
    com1_tl(cdt_in_counter,soe_num1+21)=cdt_soe_data((soe_out_pointer+9+soe_flen1_bak)%1200u);
    com1_tl(cdt_in_counter,soe_num1+22)=cdt_soe_data((soe_out_pointer+10+soe_flen1_bak)%1200u);
    com1_tl(cdt_in_counter,soe_num1+23)=bch(soe_num1+18);
	
	}
	
    cdt_tc[cdt_in_counter]=soe_num1+12u;
    cdt_in_counter^=0x01;
    cdt_bz_a0=0;
    cdt_soejs--;
    if (cdt_soejs==0)
    {
        cdt_soejs=0;
        soe_txmark1_d0=0;
        //soe_out_pointer+=12;
        soe_out_pointer=(soe_flen1*6u+soe_out_pointer)%1200u;
        if (soe_out_pointer>=1200) soe_out_pointer=0;
    }
}
/************组报头**********/
void    sjzz12 (void)
{
    cdt_f_cl();
    cdt_zlmark=*(cdt_zxta[cdt_yc_num]+cdt_zxcount);
    cdt_zxcount++;
    //06-08-09
    if(soe_txmark1_d0==0x01)
    	cdt_zlmark=cdt_zmark;
    //
    if ((cdt_zlmark==cdt_zmark)&&(cdt_soejs!=0)/*&&(soe_out_pointer!=soe_in_pointer1_bak)*/) cdt_bz_a0=0x01;
    cdt_zcj=cdt_f_led[cdt_zlmark-0x41];
    cdt_gong=gongg[cdt_zlmark-0x41];
    cdt_sjta=(__far IO_BYTE*)com_sjdz[cdt_zlmark-0x41];

    com1_tl(cdt_in_counter,0)=com1_para(4);
    com1_tl(cdt_in_counter,1)=com1_para(5);
    com1_tl(cdt_in_counter,2)=com1_para(4);
    com1_tl(cdt_in_counter,3)=com1_para(5);
    com1_tl(cdt_in_counter,4)=com1_para(4);

⌨️ 快捷键说明

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