📄 path_switch.lst
字号:
C51 COMPILER V7.50 PATH_SWITCH 03/10/2006 16:35:33 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE PATH_SWITCH
OBJECT MODULE PLACED IN path_switch.OBJ
COMPILER INVOKED BY: e:\Keil\C51\BIN\C51.EXE path_switch.c LARGE OPTIMIZE(9,SIZE) BROWSE NOAREGS DEBUG OBJECTEXTEND
line level source
1 #include <REG54.H>
2 #include "f2rc7860.h"
3 #include "rc7860.h"
4 #include "ep1k50.h"
5 #include "cmd_para_save.h"
6
7 unsigned char xdata path_switch_state[63] = {2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
-,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2};
8 //通道倒换标志位,0主用到备用强制倒换,1备用到主用强制倒换,2自动倒换状态
9
10 unsigned char xdata path_switch_array[4][63][4] = {{{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff
-,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff
-},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0x
-ff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0x
-ff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,
-0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,
-0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xf
-f,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xf
-f,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0
-xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0
-xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},
-{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff
-,0xff,0xff}},
11 {{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff
-},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0x
-ff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0x
-ff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,
-0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,
-0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xf
-f,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xf
-f,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0
-xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0
-xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},
-{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff
-,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff}},
12 {{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0x
-ff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,
-0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,
-0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xf
-f,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xf
-f,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0
-xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0
-xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},
-{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff
-,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff
-},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0x
-ff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff}},
13 {{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0x
-ff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,
-0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,
-0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xf
-f,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xf
-f,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0
-xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0
-xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},
C51 COMPILER V7.50 PATH_SWITCH 03/10/2006 16:35:33 PAGE 2
-{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff
-,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff
-},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0x
-ff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff}}};
14 //光口保护倒换数组,第一维4表示哪个主用光口,第二维63表示时隙值,
15 //第三维倒换信息:第1位表示备用光口、第2位表示被保护光口、第3位表示上行并发光口、第4位表示该主用光口连接状
-态
16
17 unsigned char xdata port_reg[63];
18
19 unsigned char xdata bboardid; //备用盘号
20 unsigned char xdata bportid; //备用端口号
21 unsigned char xdata btimeid; //备用时隙号
22 unsigned char xdata mboardid; //主用盘号
23 unsigned char xdata mportid; //主用端口号
24 unsigned char xdata mtimeid; //主用时隙号
25 unsigned char xdata auto_path_port = 0xFF;
26
27 extern unsigned long int xdata commandid;
28 extern unsigned char xdata tx_buf[];
29 extern unsigned char xdata tx_buf_pointer;
30 extern bit tx_done;
31 extern void SetResRdyTbl(unsigned char prio) large reentrant;
32 extern unsigned char GetResRdyTbl(unsigned char prio) large reentrant;
33 extern void SetExtRdyTbl(Uchar prio) large reentrant;
34 extern unsigned char f2rc7860_rd(unsigned int f2addr) large reentrant;
35 extern void f2rc7860_wr(unsigned int f2addr,unsigned char value) large reentrant;
36 extern unsigned char xdata start_flg[4];
37
38 extern unsigned char ais_reg[4][8];
39 extern unsigned char xdata test_reg[24];
40 extern unsigned char xdata init_temp; //初始化完成标志位(即C82命令完成)
41
42 unsigned char path_switch_function(unsigned char inport,unsigned char TU12ID,unsigned char outport) large
-reentrant {
43 1 //通道倒换子函数
44 1 volatile unsigned char return_value;
45 1 unsigned char xdata *valueid;
46 1 unsigned char xdata value;
47 1 unsigned char xdata quotient;
48 1 unsigned char xdata residue;
49 1
50 1 quotient = TU12ID >> 3; //得到该时隙所在的字节值(同timeid / 8运算)
51 1 residue = TU12ID & 0x07; //同timeid % 8运算
52 1 residue = 7 - residue; //得到该时隙所在的bit位
53 1
54 1 switch(inport){ //判断被倒换的光口是否正常,可以倒换
55 2 case 0: valueid = (quotient + 0x88A6);
56 2 value = ((*valueid) >> residue) & 0x01; //如果该时隙出现AIS
57 2 if (value != 0){ //该时隙不能倒换
58 3 return_value = 2;
59 3 }
60 2 else{
61 3 PTUN(outport,TU12ID)=0;
62 3 return_value = 0;
63 3 }
64 2 break;
65 2 case 1: valueid = (quotient + 0x8AA6);
66 2 value = ((*valueid) >> residue) & 0x01;
67 2 if (value != 0){
68 3 return_value = 2;
69 3 }
C51 COMPILER V7.50 PATH_SWITCH 03/10/2006 16:35:33 PAGE 3
70 2 else{
71 3 PTUN(outport,TU12ID) = 1;
72 3 return_value = 0;
73 3 }
74 2 break;
75 2 case 2: value = f2rc7860_rd(quotient + 0x00A6);
76 2 value = (value >> residue) & 0x01;
77 2 if (value != 0){
78 3 return_value = 2;
79 3 }
80 2 else{
81 3 PTUN(outport,TU12ID)=2;
82 3 return_value = 0;
83 3 }
84 2 break;
85 2 case 3: value = f2rc7860_rd(quotient + 0x02A6);
86 2 value = (value >> residue) & 0x01;
87 2 if (value != 0){
88 3 return_value = 2;
89 3 }
90 2 else{
91 3 PTUN(outport,TU12ID)=3;
92 3 return_value = 0;
93 3 }
94 2 break;
95 2 default: return_value = 2;
96 2 break;
97 2 }
98 1
99 1 /* if (inport >= 0 & inport < 4){
100 1 PTUN(outport,TU12ID) = inport;
101 1 return_value = 0;
102 1 }
103 1 else return_value = 2;
104 1 */ return (return_value);
105 1 }
106
107 unsigned char get_solt_working(unsigned char out_board,unsigned char out_port,unsigned char out_time){
108 1 //取得所要查询的时隙的当前连接
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -