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

📄 path_switch.lst

📁 单片机程序代码,经过很详细的测试.呵呵,硬件相关.
💻 LST
📖 第 1 页 / 共 5 页
字号:
 599   8      //                                                                              break;
 600   8                                                                  case 1: valueid = (quotient + 0x8AA6);
 601   8                                                                      value = ((*valueid) >> residue) & 0x01;
 602   8                                                                      if (value != 0){
 603   9                                                                              PTUN(outport,temp) = 0;
 604   9                                                                              value = 0;
 605   9                                                                                      }
 606   8                                                                          else{
 607   9                                                                              value = 2;
 608   9                                                                      }
 609   8                                                                                      break;
 610   8                                                              case 2: value = f2rc7860_rd(quotient + 0x00A6);
 611   8                                                                                      value = (value >> residue) & 0x01;
 612   8                                                                          if (value != 0){
 613   9                                                                              PTUN(outport,temp) = 0;
 614   9                                                                              value = 0;
 615   9                                                                                      }
 616   8                                                                      else{
 617   9                                                                              value = 2; 
 618   9                                                                          }
 619   8                                                                                      break;
 620   8                                                                  case 3: value = f2rc7860_rd(quotient + 0x02A6);
 621   8                                                                                      value = (value >> residue) & 0x01;
 622   8                                                                      if (value != 0){
 623   9                                                                              PTUN(outport,temp) = 0;
 624   9                                                                              value = 0;
 625   9                                                                                      }
 626   8                                                                          else{
C51 COMPILER V7.50   PATH_SWITCH                                                           03/10/2006 16:35:33 PAGE 12  

 627   9                                                                              value = 2;
 628   9                                                                      }
 629   8                                                                                      break;                    
 630   8                                                                 default: value = 2;
 631   8                                                                                      break;
 632   8                                                         }
 633   7                                                              if ((value == 0) & (outport < 4)){                              //光口处于时隙的保换倒换状态
 634   8                                                                      switch (outport){                                                       //对光口进行并发配置
 635   9                                                                              case 0: value = PTUN(1,temp) = 0;
 636   9      //                                                                                                      path_switch_function(0,temp,1);
 637   9                                                                                              break;
 638   9      //                                                                      case 1: value = path_switch_function(0,temp,0);
 639   9      //                                                                                      break;
 640   9                                                                              case 2: value = PTUN(3,temp) = 0;
 641   9      //                                                                                                      path_switch_function(0,temp,3);
 642   9                                                                                              break;
 643   9                                                                              case 3: value = PTUN(2,temp) = 0;
 644   9      //                                                                                                      path_switch_function(0,temp,2);
 645   9                                                                                              break;
 646   9                                                                              default:break;
 647   9                                                                      }
 648   8                                                              }
 649   7                                                              if (value == 0){                                                                //如果倒换成功
 650   8                                                                      path_switch_array[tport][temp][3] = 0;          //倒换成功改写当前时隙所用端口
 651   8                                                                      path_switch_array[0][temp][3] = 1;
 652   8                                                              }
 653   7                                                      }
 654   6                                              }
 655   5                                      }
 656   4                              }
 657   3                              init_recover[0] = 0;
 658   3                      }
 659   2      //              if (init_recover[0] == 2){
 660   2      //                      init_recover[0] = 1;
 661   2      //              }
 662   2      //              SetExtRdyTbl(15);                                                                                       //改写2M盘的AIS速率
 663   2              }
 664   1      
 665   1              if ((Ia0_b & 0xD0 | Ia2_b & 0xE0 | Ia3_b & 0x80) == 0){                 //MCB B口全0
 666   2                      if (init_recover[1] == 1){
 667   3                              for (temp = 0; temp <= 62; temp++){
 668   4                                      if (path_switch_state[temp] == 2){                                                      //如果处于自动倒换状态
 669   5                                              for (tport = 0; tport <= 3; tport++){                                   //轮循查找哪个光口的备用光口是MCB光口2
 670   6                                                      if (tport != 1){
 671   7                                                      if (path_switch_array[tport][temp][0] == 1){
 672   8                                                              quotient = temp >> 3;                                                   //得到该时隙所在的字节值(同timeid / 8运算)
 673   8                                                              residue = temp & 0x07;                                                  //同timeid % 8运算
 674   8                                                              residue = 7 - residue;                          //得到该时隙所在的bit位
 675   8                                                              outport = path_switch_array[tport][temp][1];
 676   8      //                                              value = path_switch_function(1,temp,outport);   //进行该时隙的通道倒换
 677   8                                                              switch(tport){
 678   9                                                                      case 0: valueid = (quotient + 0x88A6);
 679   9                                                                      value = ((*valueid) >> residue) & 0x01;         //如果该时隙出现AIS
 680   9                                                                                      if (value != 0){                                //该时隙不能倒换
 681  10                                                                              PTUN(outport,temp) = 1;
 682  10                                                                                              value = 0;
 683  10                                                                                      }
 684   9                                                                                      else{
 685  10                                                                              value = 2; 
 686  10                                                                      }
 687   9                                                                                      break;
 688   9      //                                                          case 1: valueid = (quotient + 0x8AA6);
C51 COMPILER V7.50   PATH_SWITCH                                                           03/10/2006 16:35:33 PAGE 13  

 689   9      //                                                              value = ((*valueid) >> residue) & 0x01;
 690   9      //                                                              if (value != 0){
 691   9      //                                                                      PTUN(outport,temp) = 1;
 692   9      //                                                                      value = 0;
 693   9      //                                                                              }
 694   9      //                                                                  else{
 695   9      //                                                                      value = 2;
 696   9      //                                                              }
 697   9      //                                                                              break;
 698   9                                                              case 2: value = f2rc7860_rd(quotient + 0x00A6);
 699   9                                                                                      value = (value >> residue) & 0x01;
 700   9                                                                          if (value != 0){
 701  10                                                                              PTUN(outport,temp) = 1;
 702  10                                                                              value = 0;
 703  10                                                                                      }
 704   9                                                                      else{
 705  10                                                                              value = 2; 
 706  10                                                                          }
 707   9                                                                                      break;
 708   9                                                                  case 3: value = f2rc7860_rd(quotient + 0x02A6);
 709   9                                                                                      value = (value >> residue) & 0x01;
 710   9                                                                      if (value != 0){
 711  10                                                                              PTUN(outport,temp) = 1;
 712  10                                                                              value = 0;
 713  10                                                                                      }
 714   9                                                                          else{
 715  10                                                                              value = 2;
 716  10                                                                      }
 717   9                                                                                      break;                    
 718   9                                                                 default: value = 2;
 719   9                                                                                      break;
 720   9                                                         }
 721   8                                                              if ((value == 0) & (outport < 4)){                              //光口处于时隙的保换倒换状态
 722   9                                                                      switch (outport){                                                       //对光口进行并发配置
 723  10      //                                                                      case 0: value = path_switch_function(1,temp,1);
 724  10      //                                                                                      break;
 725  10                                                                              case 1: value = PTUN(0,temp) = 1;
 726  10      //                                                                                                      path_switch_function(1,temp,0);
 727  10                                                                                              break;
 728  10                                                                              case 2: value = PTUN(3,temp) = 1;
 729  10      //                                                                                                      path_switch_function(1,temp,3);
 730  10                                                                                              break;
 731  10                                                                              case 3: value = PTUN(2,temp) = 1;
 732  10      //                                                                                                      path_switch_function(1,temp,2);
 733  10                                                                                              break;
 734  10                                                                              default:break;
 735  10                                                                      }
 736   9                                                              }
 737   8                                                              if (value == 0){                                                                //如果倒换成功
 738   9                                                                      path_switch_array[tport][temp][3] = 0;          //倒换成功改写当前时隙所用端口
 739   9                                                                      path_switch_array[1][temp][3] = 1;
 740   9                                                              }
 741   8                                                      }
 742   7                                                      }
 743   6                                              }
 744   5                                      }
 745   4                              }
 746   3                              init_recover[1] = 0;
 747   3                      }
 748   2      //              if (init_recover[1] == 2){
 749   2      //                      init_recover[1] = 1;
 750   2      //              }
C51 COMPILER V7.50   PATH_SWITCH                                                           03/10/2006 16:35:33 PAGE 14  

 751   2      //              SetExtRdyTbl(15);                                                                                       //改写2M盘的AIS速率
 752   2              }
 753   1      
 754   1              if(start_flg[0] == 0){
 755   2                      if ((f2rc7860_rd(F2Ia0_a) & 0xD0 | f2rc7860_rd(F2Ia2_a) & 0xE0 | f2rc7860_rd(F2Ia3_a) & 0x80) == 0){                    /
             -/OTB A口全0
 756   3                              if (init_recover[2] == 1){
 757   4                                      for (temp = 0; temp <= 62; temp++){
 758   5                                              if (path_switch_state[temp] == 2){                                                      //如果处于自动倒换状态
 759   6                                                      for (tport = 

⌨️ 快捷键说明

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