📄 alarm.lst
字号:
C51 COMPILER V7.50 ALARM 03/10/2006 16:35:32 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE ALARM
OBJECT MODULE PLACED IN alarm.OBJ
COMPILER INVOKED BY: e:\Keil\C51\BIN\C51.EXE alarm.c LARGE OPTIMIZE(9,SIZE) BROWSE NOAREGS DEBUG OBJECTEXTEND
line level source
1 #include <REG54.H>
2 #include "rc7820.h"
3 #include "rc7860.h"
4 #include "f2rc7820.h"
5 #include "f2rc7860.h"
6 #include "se0111.h"
7 #include "se0121.h"
8 #include "cmd_para_save.h"
9
10 extern unsigned long int xdata commandid; //表示命令代码的变量
11 extern unsigned char f2rc7820_rd(unsigned char f2addr) large reentrant;
12 extern unsigned char f2rc7860_rd(unsigned int f2addr) large reentrant;
13 extern void f2rc7860_wr(unsigned int f2addr,unsigned char value) large reentrant;
14 extern unsigned char se0111_reg_rd(unsigned char Haddr,unsigned char Laddr,unsigned char slot);
15 extern unsigned char se0121_reg_rd(unsigned char Laddr,unsigned char slot);
16 extern unsigned char get_clock_state(unsigned char clksource);
17 extern void SetResRdyTbl(unsigned char prio) large reentrant;
18 extern unsigned char GetResRdyTbl(unsigned char prio) large reentrant;
19 extern unsigned char xdata tx_buf[];
20 extern unsigned char xdata tx_buf_pointer;
21 extern bit tx_done;
22 extern unsigned char xdata start_flg[4];
23 extern unsigned char xdata start_flg_EOS[4];
24 extern unsigned char xdata board_type[4][2]; //定义插盘类型数组,第一位表示槽号,第二位表示盘号
25 extern unsigned char xdata clk_source;
26 extern unsigned char xdata timeslot_2M[3][21]; //2M时隙配置标志位,1表示配置时隙,0表示该时隙删除
27
28 unsigned char xdata LOS_TU_2M[3][21]; //硬件电路检测的支路信号LOS
29 unsigned char xdata int_alarm[4][4] = {{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0}};
30 //保存中断告警数组,行表示某光口,列表示该光口的告警值
31 unsigned char xdata check_alarm_mcb[5] = {0,0,0,0,0}; //查询MCB盘的其他非中断告警
32 unsigned char xdata check_alarm_otb[3] = {0,0,0}; //查询OTB盘的其他非中断告警
33 unsigned char xdata check_alarm_2M[3][21][2] = {{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,
-0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{
-0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}
-,{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}}};
34 //保存2M盘告警数组,[3]表示3个2M盘,[21]表示21个支路,[2]表示告警值
35 unsigned char xdata frame_flg_before[15] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; //告警标志位,一秒前的
36 unsigned char xdata frame_flg_work[15] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; //告警标志位,当前一秒的
37 unsigned char xdata check_alarm_Eos[3][3] = {{0,0,0},{0,0,0},{0,0,0}};
38 //保存Eos盘的告警数组,第一个[3]表示3个Eos盘,后一个[3]表示告警的内容
39 unsigned char xdata frame_flg_before_eos[3] = {0,0,0};
40 unsigned char xdata frame_flg_work_eos[3] = {0,0,0};
41
42 void get_2M_reg(unsigned char tnum,unsigned char addrh1,unsigned char addrl1,unsigned char addrh2,unsigned
- char addrl2,unsigned char slot){
43 1 //取2M盘的告警寄存器值存入数组,tnum表示支路号,slot表示2M盘号
44 1 if (timeslot_2M[slot][tnum]){
45 2 check_alarm_2M[slot][tnum][0] = se0111_reg_rd(addrh1,addrl1,slot + 1) & 0xCC; //得到2M盘支路1的AIS、LOP
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -