📄 test.lst
字号:
791 if (int_reg & 0x0F){
792 judge = Ia0_b; //得出MCB的7860B口IA0中断寄存器值
793 judge1 = Ia1_b;
794 judge2 = Ia2_b;
795 judge3 = Ia3_b;
796 Rdint_clr = 0x40; //清除MCB盘的Ia3_a与Ia3_b中断位
797 for (temp = 0; temp <= 7; temp++){ //取出63个时隙的AIS寄存器值
798 ais_reg[1][temp] |= XBYTE[temp + 0x8AA6];
C51 COMPILER V7.50 TEST 03/10/2006 16:35:17 PAGE 14
799 }
800 if ((judge & 0xDA) | (judge2 & 0xE0) | (judge3 & 0x80)){
801 intflg_MCBB = 1;
802 }
803 if (judge != 0){
804 Intmask0_b = judge;
805 judge &= 0xD0; //取出可发生自动倒换的bit位
806 if (judge != 0){
807 // SetExtRdyTbl(3);
808 init_recover[1] = 1;
809 path_switch_mcbb();
810 }
811 }
812 if (judge1 != 0){
813 Intmask1_b = judge1;
814 // judge1 &= 0xF0;
815 // if (judge1 != 0){
816 // SetExtRdyTbl(3);
817 // path_switch_mcbb();
818 // }
819 }
820 if (judge2 != 0){
821 Intmask2_b = judge2;
822 judge2 &= 0xE0;
823 if (judge2 != 0){
824 // SetExtRdyTbl(3);
825 init_recover[1] = 1;
826 path_switch_mcbb();
827 }
828 }
829 if (judge3 != 0){
830 // Intmask3_b = judge3;
831 judge3 &= 0x80;
832 if (judge3 != 0){
833 // inb += 1;
834 SetExtRdyTbl(4);
835 init_recover[1] = 1;
836 path_switch_mcbb_tu();
837 }
838 }
839 }
840
841 // judge = int_flg & 0x04;
842 // if (judge == 0x04){
843 if (f2rc7820_rd(F2Int_reg)){
844 f2rc7820_wr(F2Encrypt_reg,0xAA); //open 7820 write reg
845 f2rc7820_wr(F2Intmask_reg,0xFF);
846 }
847
848 // judge = int_flg & 0x08; //取出OTB7860的中断
849 // if (judge == 0x08){
850 int_reg = f2rc7860_rd(F2Int_vec);
851 if (int_reg){
852 if (start_flg[0] == 1){
853 f2rc7860_wr(F2Reg_protect,0xAA); //open 7860 write reg protect
854 f2rc7860_wr(F2Int_mask,0x80);
855 }
856 else{
857 if (int_reg & 0xF0){
858 judge = f2rc7860_rd(F2Ia0_a); //光分支盘A口中断处理
859 judge1 = f2rc7860_rd(F2Ia1_a);
860 judge2 = f2rc7860_rd(F2Ia2_a);
C51 COMPILER V7.50 TEST 03/10/2006 16:35:17 PAGE 15
861 judge3 = f2rc7860_rd(F2Ia3_a);
862 f2rc7860_wr(F2Rdint_clr,0x40); //清除OTB盘的F2Ia3_a与F2Ia3_b中断位
863 for (temp = 0; temp <= 7; temp++){ //取出63个时隙的AIS寄存器值
864 ais_reg[2][temp] |= f2rc7860_rd(temp + 0x00A6);
865 }
866 if ((judge & 0xDA) | (judge2 & 0xE0) | (judge3 & 0x80)){
867 intflg_OTBA = 1;
868 }
869 if (judge != 0){
870 f2rc7860_wr(F2Intmask0_a,judge);
871 judge &= 0xD0; //取出可发生自动倒换的bit位
872 if (judge != 0){
873 // SetExtRdyTbl(5);
874 init_recover[2] = 1;
875 path_switch_otba();
876 }
877 }
878 if (judge1 != 0){
879 f2rc7860_wr(F2Intmask1_a,judge1);
880 // judge1 &= 0xF0;
881 // if (judge1 != 0){
882 // SetExtRdyTbl(5);
883 // path_switch_otba();
884 // }
885 }
886 if (judge2 != 0){
887 f2rc7860_wr(F2Intmask2_a,judge2);
888 judge2 &= 0xE0;
889 if (judge2 != 0){
890 // SetExtRdyTbl(5);
891 init_recover[2] = 1;
892 path_switch_otba();
893 }
894 }
895 if (judge3 != 0){
896 // f2rc7860_wr(F2Intmask3_a,judge3);
897 judge3 &= 0x80;
898 if (judge3 != 0){
899 SetExtRdyTbl(6);
900 init_recover[2] = 1;
901 path_switch_otba_tu();
902 }
903 }
904 }
905
906 if (int_reg & 0x0F){
907 judge = f2rc7860_rd(F2Ia0_b); //光分支盘B口中断处理
908 judge1 = f2rc7860_rd(F2Ia1_b);
909 judge2 = f2rc7860_rd(F2Ia2_b);
910 judge3 = f2rc7860_rd(F2Ia3_b);
911 f2rc7860_wr(F2Rdint_clr,0x40); //清除OTB盘的F2Ia3_a与F2Ia3_b中断位
912 for (temp = 0; temp <= 7; temp++){ //取出63个时隙的AIS寄存器值
913 ais_reg[3][temp] |= f2rc7860_rd(temp + 0x02A6);
914 }
915 if ((judge & 0xDA) | (judge2 & 0xE0) | (judge3 & 0x80)){
916 intflg_OTBB = 1;
917 }
918 if (judge != 0){
919 f2rc7860_wr(F2Intmask0_b,judge);
920 judge &= 0xD0; //取出可发生自动倒换的bit位
921 if (judge != 0){
922 // SetExtRdyTbl(7);
C51 COMPILER V7.50 TEST 03/10/2006 16:35:17 PAGE 16
923 init_recover[3] = 1;
924 path_switch_otbb();
925 }
926 }
927 if (judge1 != 0){
928 f2rc7860_wr(F2Intmask1_b,judge1);
929 // judge1 &= 0xF0;
930 // if (judge1 != 0){
931 // SetExtRdyTbl(7);
932 // path_switch_otbb();
933 // }
934 }
935 if (judge2 != 0){
936 f2rc7860_wr(F2Intmask2_b,judge2);
937 judge2 &= 0xE0;
938 if (judge2 != 0){
939 // SetExtRdyTbl(7);
940 init_recover[3] = 1;
941 path_switch_otbb();
942 }
943 }
944 if (judge3 != 0){
945 // f2rc7860_wr(F2Intmask3_b,judge3);
946 judge3 &= 0x80;
947 if (judge3 != 0){
948 SetExtRdyTbl(8);
949 init_recover[3] = 1;
950 path_switch_otbb_tu();
951 }
952 }
953 }
954 }
955 }
956
957 SetExtRdyTbl(15); //每秒查询改写2M盘的AIS速率
958 Rdint_clr = 0x40; //清除MCB盘的Ia3_a与Ia3_b中断位
959 f2rc7860_wr(F2Rdint_clr,0x40); //清除OTB盘的F2Ia3_a与F2Ia3_b中断位
960
961 }
962
963 /*****************************************************************************/
964
965 timer0 () interrupt 1 using 2{
966 1 unsigned char xdata btemp;
967 1 TH0 = -46080/256;
968 1 TL0 = -46080%256;
969 1 if (++time3 >= 8){
970 2 time3 = 0;
971 2 P1_0 = ~P1_0;
972 2 }
973 1 time++;
974 1 // if (++time == 20){
975 1 // time = 0;
976 1 // P3_4 = ~P3_4;
977 1 // }
978 1 if (++time1 >= 40){
979 2 time1 = 0;
980 2 if (init_temp){
981 3 SetExtRdyTbl(10); //每秒查询单盘状态
982 3 SetExtRdyTbl(11); //设置每秒钟收集性能与告警函数事件表
983 3 SetExtRdyTbl(14); //设置查询通道倒换函数
984 3 // if (!GetExtRdyTbl(15)) //每秒查询改写2M盘的AIS速率
C51 COMPILER V7.50 TEST 03/10/2006 16:35:17 PAGE 17
985 3 // SetExtRdyTbl(15);
986 3
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -