📄 irq.lst
字号:
ARM COMPILER V2.32a, irq 08/08/05 09:50:23 PAGE 1
ARM COMPILER V2.32a, COMPILATION OF MODULE irq
OBJECT MODULE PLACED IN irq.OBJ
COMPILER INVOKED BY: C:\Keil\ARM\BIN\CA.exe irq.c THUMB OPTIMIZE(0,SPEED) BROWSE DEBUG TABS(4)
stmt level source
1 // irq.c
2
3 /********************************************************************/
4 /* */
5 /* IRQ Interrupt Service Rountine */
6 /* */
7 /********************************************************************/
8 #include <ADuC7020.h>
9 #include "common.h"
10
11 void IRQ_Handler(void) __irq {
12 1 static HALFWORD er_count=0;
13 1
14 1 /********************************************************************/
15 1 /* */
16 1 /* Monitor and Diagnostic routine */
17 1 /* triggered by Timer1 underflow */
18 1 /********************************************************************/
19 1
20 1 if((IRQSTA & GP_TIMER_BIT)) // Timer1 IRQ?
21 1 {
22 2
23 2 T1CON = 0x00;
24 2
25 2 if((i2c_receive != 0x00) && (i2c_first == TRUE)) {
26 3 FlashUpdate(i2c_receive);
27 3 i2c_receive = 0x00;
28 3 }
29 2
30 2 // update DACs
31 2 if(dac_update == 0x01) SetDac(0);
32 2 if(dac_update == 0x02) SetDac(1);
33 2
34 2 monitor(); // run monitor routines
35 2 diag(); // run diagnostic routnies
36 2 fault_recovery_check(); // check recovery status
37 2
38 2 if(ER_CON)ErCalibration(ER_CON); // run ER caliburation
39 2 if((er_count>=ER_COMP_TIME) && ER_COMP_ENABLE){
40 3 ErCompensation(); // run ER compensation
41 3 er_count=0; // reset counter
42 3 }
43 2
44 2 A2h[110] &= 0xFE; // clear bit0, DATA_READY_BAR in Status/Control Bits
45 2 er_count++;
46 2
47 2 T1CLRI = 0; // clear Timer1 interrupt
48 2 T1CON = 0xCF;
49 2 }
50 1
51 1
52 1 /********************************************************************/
53 1 /* */
54 1 /* Tx Laser Fault detection */
55 1 /* triggered by External IRQ0 */
56 1 /********************************************************************/
57 1 if ((IRQSTA & XIRQ0_BIT) == 0x00008000) // XIRQ0, bit15
58 1 {
59 2 // set bit in status/control bits resister
ARM COMPILER V2.32a, irq 08/08/05 09:50:23 PAGE 2
60 2 A2h[110] |= 0x04; // bit2(Tx Fault state) is set high
61 2
62 2 IRQCLR = 0x00008000; // disable XIRQ0 interrupt
63 2 }
64 1
65 1 /********************************************************************/
66 1 /* */
67 1 /* Tx Disable detection */
68 1 /* triggered by External IRQ1 */
69 1 /********************************************************************/
70 1 if ((IRQSTA & XIRQ1_BIT) == 0x00040000) // XIRQ1, bit14
71 1 {
72 2 // set bit in status/control bits resister
73 2 A2h[110] |= 0x80; // bit7(Tx Disable state) is set high
74 2
75 2 IRQCLR = 0x00040000; // disable XIRQ1 interrupt
76 2 }
77 1
78 1 /********************************************************************/
79 1 /* */
80 1 /* Rx LOS detection */
81 1 /* triggered by PLA IRQ0 */
82 1 /********************************************************************/
83 1 /*
84 1 if ((IRQSTA & PLA_IRQ0_BIT) == 0x00080000) // PLAIRQ0, bit19
85 1 {
86 1 // set bit in status/control bits resister
87 1 A2h[110] |= 0x02; // bit1(LOS) is set high
88 1
89 1 IRQCLR = 0x00080000; // disable PLAIRQ0 interrupt
90 1 }
91 1 */
92 1 /********************************************************************/
93 1 /* */
94 1 /* Rx Rate Select detection */
95 1 /* triggered by PLA IRQ1 */
96 1 /********************************************************************/
97 1
98 1 /*
99 1 if ((IRQSTA & PLA_IRQ1_BIT) == 0x00100000) // PLAIRQ1
100 1 {
101 1 // set bit in status/control bits resister
102 1 A2h[110] |= 0x10; // bit4(RateSel) is set high
103 1
104 1 IRQCLR = 0x00100000; // disable PLAIRQ0 interrupt
105 1 }
106 1
107 1 */
108 1
109 1 }
110
ARM COMPILER V2.32a, irq 08/08/05 09:50:23 PAGE 3
ASSEMBLY LISTING OF GENERATED OBJECT CODE
*** EXTERNALS:
EXTERN DATA (A2h)
EXTERN DATA (i2c_first)
EXTERN DATA (i2c_receive)
EXTERN DATA (dac_update)
EXTERN CODE16 (SetDac?T)
EXTERN CODE16 (fault_recovery_check?T)
EXTERN CODE16 (monitor?T)
EXTERN CODE16 (diag?T)
EXTERN CODE16 (FlashUpdate?T)
EXTERN CODE16 (ErCalibration?T)
EXTERN CODE16 (ErCompensation?T)
EXTERN CODE32 (FlashUpdate?A)
EXTERN CODE32 (SetDac?A)
EXTERN CODE32 (monitor?A)
EXTERN CODE32 (diag?A)
EXTERN CODE32 (fault_recovery_check?A)
EXTERN CODE32 (ErCalibration?A)
EXTERN CODE32 (ErCompensation?A)
*** PUBLICS:
PUBLIC IRQ_Handler?A
*** DATA SEGMENT '?DT0?irq':
00000000 er_count:
00000000 BEGIN_INIT
00000000 0000 DW 0x0
00000002 END_INIT
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -