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

📄 eint2.lst

📁 一个基于ARM单片机的红外解码的程序,红外时序通过串口发出,是红外解码的一个辅助助手,非常好用.
💻 LST
📖 第 1 页 / 共 2 页
字号:
 00000000          ASCII:
 00000000           BEGIN_INIT
 00000000  30        DB          0x30
 00000001  31        DB          0x31
 00000002  32        DB          0x32
 00000003  33        DB          0x33
 00000004  34        DB          0x34
 00000005  35        DB          0x35
 00000006  36        DB          0x36
 00000007  37        DB          0x37
 00000008  38        DB          0x38
 00000009  39        DB          0x39
 0000000A           END_INIT



*** CODE SEGMENT '?PR?IRQ_Eint2?A?EINT2':
   44: void  IRQ_Eint2 (void)  __irq
 00000000  E92D5F0F  STMDB       R13!,{R0-R3,R8-R12,LR}
   48:     if ((EXTINT & 0x04) != 0)
 00000004  E5100000  LDR         R0,=0xE01FC140
 00000008  E5D00000  LDRB        R0,[R0,#0x0]
 0000000C  E3100004  TST         R0,#0x0004
 00000010  0A00005A  BEQ         L_1  ; Targ=0x180
   50:         EXTINT = 0x04;                  // 清除EINT0中断标志
 00000014  E3A01004  MOV         R1,#0x4
 00000018  E5100000  LDR         R0,=0xE01FC140
 0000001C  E5C01000  STRB        R1,[R0,#0x0]
   51:         T1TCR  = 0x00;                  // 定时器计数器禁止计数
 00000020  E3A02000  MOV         R2,#0x0
 00000024  E5100000  LDR         R0,=0xE0008004
 00000028  E5802000  STR         R2,[R0,#0x0]
   52:         RedTime = T1TC;                 // 保存两次下降沿这间的时间
 0000002C  E5100000  LDR         R0,=0xE0008008
 00000030  E5902000  LDR         R2,[R0,#0x0]
 00000034  E1A02802  MOV         R2,R2,LSL #16
 00000038  E1A02822  MOV         R2,R2,LSR #16
 0000003C  E5100000  LDR         R0,=RedTime ; RedTime
 00000040  E1C020B0  STRH        R2,[R0,#0x0] ; RedTime
   53:         if((EXTPOLAR & 0x04) == 0x00)   // 这次为下降沿中断
 00000044  E5100000  LDR         R0,=0xE01FC14C
 00000048  E5D00000  LDRB        R0,[R0,#0x0]
 0000004C  E3100004  TST         R0,#0x0004
 00000050  1A000002  BNE         L_2  ; Targ=0x60
   55:             EXTPOLAR = 0x04;        // EINT2改为上升沿中断
ARM COMPILER V2.50a,  EINT2                                                                16/06/07  08:25:44  PAGE 5   

 00000054  E5100000  LDR         R0,=0xE01FC14C
 00000058  E5C01000  STRB        R1,[R0,#0x0]
   56:         } else {
 0000005C  EA000002  B           L_3  ; Targ=0x6C
 00000060          L_2:
   57:             EXTPOLAR = 0x00;        // EINT2改为下降沿中断
 00000060  E3A01000  MOV         R1,#0x0
 00000064  E5100000  LDR         R0,=0xE01FC14C
 00000068  E5C01000  STRB        R1,[R0,#0x0]
   58:         }
 0000006C          L_3:
   59:         T1TCR  = 0x03;                  // 复位
 0000006C  E3A01003  MOV         R1,#0x3
 00000070  E5100000  LDR         R0,=0xE0008004
 00000074  E5801000  STR         R1,[R0,#0x0]
   60:         T1TCR  = 0x01;                  // 定时器计数器开始计数
 00000078  E3A01001  MOV         R1,#0x1
 0000007C  E5100000  LDR         R0,=0xE0008004
 00000080  E5801000  STR         R1,[R0,#0x0]
   61:         if((EXTPOLAR & 0x04) == 0x00)   // 这次为下降沿中断
 00000084  E5100000  LDR         R0,=0xE01FC14C
 00000088  E5D00000  LDRB        R0,[R0,#0x0]
 0000008C  E3100004  TST         R0,#0x0004
 00000090  1A000008  BNE         L_4  ; Targ=0xB8
   63:             UART0_SendByte(13);
 00000094  E3A0000D  MOV         R0,#0xD
 00000098  EBFFFFD8  BL          UART0_SendByte?A  ; Targ=0x0
   64:             UART0_SendByte(10);
 0000009C  E3A0000A  MOV         R0,#0xA
 000000A0  EBFFFFD6  BL          UART0_SendByte?A  ; Targ=0x0
   65:             UART0_SendByte(0xb5);
 000000A4  E3A000B5  MOV         R0,#0xB5
 000000A8  EBFFFFD4  BL          UART0_SendByte?A  ; Targ=0x0
   66:             UART0_SendByte(0xcd);
 000000AC  E3A000CD  MOV         R0,#0xCD
 000000B0  EBFFFFD2  BL          UART0_SendByte?A  ; Targ=0x0
   67:         } else {
 000000B4  EA000003  B           L_5  ; Targ=0xC8
 000000B8          L_4:
   68:             UART0_SendByte(0xb8);
 000000B8  E3A000B8  MOV         R0,#0xB8
 000000BC  EBFFFFCF  BL          UART0_SendByte?A  ; Targ=0x0
   69:             UART0_SendByte(0xdf);   
 000000C0  E3A000DF  MOV         R0,#0xDF
 000000C4  EBFFFFCD  BL          UART0_SendByte?A  ; Targ=0x0
   70:         }
 000000C8          L_5:
   72:         RedCnt = RedTime;
 000000C8  E5100000  LDR         R0,=RedTime ; RedTime
 000000CC  E1D010B0  LDRH        R1,[R0,#0x0] ; RedTime
 000000D0  E5100000  LDR         R0,=RedCnt ; RedCnt
 000000D4  E1C010B0  STRH        R1,[R0,#0x0] ; RedCnt
   73:         if((RedCnt/1000) != 0)
 000000D8  E5100000  LDR         R0,=RedCnt ; RedCnt
 000000DC  E1D000B0  LDRH        R0,[R0,#0x0] ; RedCnt
 000000E0  E3A01FFA  MOV         R1,#0x3E8
 000000E4  EBFFFFC5  BL          ?C?SDIV?A  ; Targ=0x0 ; ?C?SDIV?A
 000000E8  E1A00001  MOV         R0,R1
 000000EC  E3500000  CMP         R0,#0x0000
 000000F0  0A000002  BEQ         L_6  ; Targ=0x100
   75:             UART0_SendByte(ASCII[RedCnt/1000]);
 000000F4  E5101000  LDR         R1,=ASCII ; ASCII
 000000F8  E7D10000  LDRB        R0,[R1,+R0]
 000000FC  EBFFFFBF  BL          UART0_SendByte?A  ; Targ=0x0
   76:         }
 00000100          L_6:
ARM COMPILER V2.50a,  EINT2                                                                16/06/07  08:25:44  PAGE 6   

   77:         if((RedCnt%1000/100) != 0)
 00000100  E5100000  LDR         R0,=RedCnt ; RedCnt
 00000104  E1D000B0  LDRH        R0,[R0,#0x0] ; RedCnt
 00000108  E3A01FFA  MOV         R1,#0x3E8
 0000010C  EBFFFFBB  BL          ?C?SDIV?A  ; Targ=0x0 ; ?C?SDIV?A
 00000110  E3A01064  MOV         R1,#0x64
 00000114  EBFFFFB9  BL          ?C?SDIV?A  ; Targ=0x0 ; ?C?SDIV?A
 00000118  E1A00001  MOV         R0,R1
 0000011C  E3500000  CMP         R0,#0x0000
 00000120  0A000002  BEQ         L_7  ; Targ=0x130
   79:             UART0_SendByte(ASCII[(RedCnt%1000/100)]);
 00000124  E5101000  LDR         R1,=ASCII ; ASCII
 00000128  E7D10000  LDRB        R0,[R1,+R0]
 0000012C  EBFFFFB3  BL          UART0_SendByte?A  ; Targ=0x0
   80:         }
 00000130          L_7:
   81:         UART0_SendByte('.');
 00000130  E3A0002E  MOV         R0,#0x2E
 00000134  EBFFFFB1  BL          UART0_SendByte?A  ; Targ=0x0
   82:         UART0_SendByte(ASCII[(RedCnt%100)/10]);
 00000138  E5100000  LDR         R0,=RedCnt ; RedCnt
 0000013C  E1D000B0  LDRH        R0,[R0,#0x0] ; RedCnt
 00000140  E3A01064  MOV         R1,#0x64
 00000144  EBFFFFAD  BL          ?C?SDIV?A  ; Targ=0x0 ; ?C?SDIV?A
 00000148  E3A0100A  MOV         R1,#0xA
 0000014C  EBFFFFAB  BL          ?C?SDIV?A  ; Targ=0x0 ; ?C?SDIV?A
 00000150  E1A00001  MOV         R0,R1
 00000154  E5101000  LDR         R1,=ASCII ; ASCII
 00000158  E7D10000  LDRB        R0,[R1,+R0]
 0000015C  EBFFFFA7  BL          UART0_SendByte?A  ; Targ=0x0
   84:         UART0_SendByte(ASCII[RedCnt%10]);           
 00000160  E5100000  LDR         R0,=RedCnt ; RedCnt
 00000164  E1D000B0  LDRH        R0,[R0,#0x0] ; RedCnt
 00000168  E3A0100A  MOV         R1,#0xA
 0000016C  EBFFFFA3  BL          ?C?SDIV?A  ; Targ=0x0 ; ?C?SDIV?A
 00000170  E1A01000  MOV         R1,R0
 00000174  E5100000  LDR         R0,=ASCII ; ASCII
 00000178  E7D00001  LDRB        R0,[R0,+R1]
 0000017C  EBFFFF9F  BL          UART0_SendByte?A  ; Targ=0x0
   86:     }
 00000180          L_1:
   88:     VICVectAddr = 0;                                // 向量中断结束
 00000180  E3A01000  MOV         R1,#0x0
 00000184  E5100000  LDR         R0,=0xFFFFF030
 00000188  E5801000  STR         R1,[R0,#0x0]
   89: }
 0000018C  E8BD5F0F  LDMIA       R13!,{R0-R3,R8-R12,LR}
 00000190  E25EF004  SUBS        R15,R14,#0x0004
 00000194          ENDP ; 'IRQ_Eint2?A'



Module Information          Static
----------------------------------
  code size            =    ------
  data size            =         9
  const size           =        10
End of Module Information.


ARM COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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