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

📄 wakeuptimer.lst

📁 ADuC7020/26是ADI模拟公司开发的ARM7TDMI内核
💻 LST
📖 第 1 页 / 共 2 页
字号:
   58: }
 00000084  E8BD0008  LDMIA       R13!,{R3}
 00000088  E12FFF13  BX          R3
ARM COMPILER V2.40c,  WakeUpTimer                                                          10/10/05  16:57:03  PAGE 5   

 0000008C          ENDP ; 'main'


*** CODE SEGMENT '?PR?IRQ_Handler?A?WakeUpTimer':
   67: void IRQ_Handler() __irq
 00000000  E92D5F0F  STMDB       R13!,{R0-R3,R8-R12,LR}
   68: {
 00000004            ; SCOPE-START
   71:     GP4DAT ^= 0x00040000;           // Compliment P4.2 each time an interrupt 
 00000004  E5100000  LDR         R0,=0xFFFFF460
 00000008  E5901000  LDR         R1,[R0,#0x0]
 0000000C  E2211701  EOR         R1,R1,#0x40000
 00000010  E5801000  STR         R1,[R0,#0x0]
   75:     ADCpoweron(20000);              // power on ADC                                     
 00000014  E5100000  LDR         R0,=0x4E20
 00000018  EBFFFFF8  BL          ADCpoweron?A  ; Targ=0x0
   76:     REFCON = 0x01;                  // connect internal 2.5V reference to VREF pin
 0000001C  E3A01001  MOV         R1,#0x1
 00000020  E5100000  LDR         R0,=0xFFFF048C
 00000024  E5801000  STR         R1,[R0,#0x0]
   77:     ADCCP  = 0x00;                  // Selecting ADC Channel 0  
 00000028  E3A01000  MOV         R1,#0x0
 0000002C  E5100000  LDR         R0,=0xFFFF0504
 00000030  E5801000  STR         R1,[R0,#0x0]
   78:     ADCCON = 0x4E3;                 // Perform single software conversion (AC Speed = 1 MSPS)
 00000034  E5101000  LDR         R1,=0x4E3
 00000038  E5100000  LDR         R0,=0xFFFF0500
 0000003C  E5801000  STR         R1,[R0,#0x0]
   80:     while (!ADCSTA){}           // wait for end of conversion
 00000040          L_2:
 00000040  E5100000  LDR         R0,=0xFFFF050C
 00000044  E5900000  LDR         R0,[R0,#0x0]
 00000048  E3500000  CMP         R0,#0x0000
 0000004C  0AFFFFFB  BEQ         L_2  ; Targ=0x40
   81:         senddata(ADCDAT >> 16); // Output Conversion
 00000050  E5100000  LDR         R0,=0xFFFF0510
 00000054  E5900000  LDR         R0,[R0,#0x0]
 00000058  E1A00820  MOV         R0,R0,LSR #16
 0000005C  EBFFFFE7  BL          senddata?A  ; Targ=0x0
   83:     ADCCON = 0x00;                  // Powers Down ADC
 00000060  E3A01000  MOV         R1,#0x0
 00000064  E5100000  LDR         R0,=0xFFFF0500
 00000068  E5801000  STR         R1,[R0,#0x0]
   85:     t = 5000;                    // Delay required to send data via UART
 0000006C  E5100000  LDR         R0,=0x1388
 00000070  ---- Variable 't' assigned to Register 'R0' ----
   86:     while(t>0)
 00000070          L_8:
   88:         t--;
 00000070  E2400001  SUB         R0,R0,#0x0001 ; t
   89:     }
 00000074  E1A01000  MOV         R1,R0 ; t
 00000078  E3510000  CMP         R1,#0x0000 ; t
 0000007C  CAFFFFFB  BGT         L_8  ; Targ=0x70
   91:     GP4DAT ^= 0x00040000;           // Complement P4.2 at end of conversion (switches off)
 00000080  E5100000  LDR         R0,=0xFFFFF460
 00000084  E5901000  LDR         R1,[R0,#0x0]
 00000088  E2211701  EOR         R1,R1,#0x40000
 0000008C  E5801000  STR         R1,[R0,#0x0]
   93:     T2CLRI = 0xFF;    // Clearing Timer2 Interrupt
 00000090  E3A010FF  MOV         R1,#0xFF
 00000094  E5100000  LDR         R0,=0xFFFF034C
 00000098  E5801000  STR         R1,[R0,#0x0]
  100:     return;
 0000009C            ; SCOPE-END
  101: }
 0000009C  E8BD5F0F  LDMIA       R13!,{R0-R3,R8-R12,LR}
 000000A0  E25EF004  SUBS        R15,R14,#0x0004
ARM COMPILER V2.40c,  WakeUpTimer                                                          10/10/05  16:57:03  PAGE 6   

 000000A4          ENDP ; 'IRQ_Handler?A'


*** CODE SEGMENT '?PR?ADCpoweron?A?WakeUpTimer':
  107: void ADCpoweron(int time)
 00000000  ---- Variable 'time' assigned to Register 'R0' ----
  109:     ADCCON = 0x20;                      // power-on the ADC
 00000000  E3A02020  MOV         R2,#0x20
 00000004  E5101000  LDR         R1,=0xFFFF0500
 00000008  E5812000  STR         R2,[R1,#0x0]
  110:     while (time >=0)                    // wait for ADC to be fully powered on
 0000000C  EA000000  B           L_11  ; Targ=0x14
 00000010          L_13:
 00000010  E2400001  SUB         R0,R0,#0x0001 ; time
 00000014          L_11:
 00000014  E1A01000  MOV         R1,R0 ; time
 00000018  E3510000  CMP         R1,#0x0000 ; time
 0000001C  AAFFFFFB  BGE         L_13  ; Targ=0x10
  112: }
 00000020  E12FFF1E  BX          R14
 00000024          ENDP ; 'ADCpoweron?A'


*** CODE SEGMENT '?PR?senddata?A?WakeUpTimer':
  115: void senddata(short to_send)
 00000000  E92D4010  STMDB       R13!,{R4,LR}
 00000004  E1A04000  MOV         R4,R0 ; to_send
 00000008  ---- Variable 'to_send' assigned to Register 'R4' ----
  117:     while(!(0x020==(COMSTA0 & 0x020))){}
 00000008          L_15:
 00000008  E5100000  LDR         R0,=0xFFFF0714
 0000000C  E5900000  LDR         R0,[R0,#0x0]
 00000010  E3100020  TST         R0,#0x0020
 00000014  0AFFFFFB  BEQ         L_15  ; Targ=0x8
  118:         COMTX = 0x0A;                       // output LF 
 00000018  E3A0100A  MOV         R1,#0xA
 0000001C  E5100000  LDR         R0,=0xFFFF0700
 00000020  E5801000  STR         R1,[R0,#0x0]
  119:     while(!(0x020==(COMSTA0 & 0x020))){}
 00000024          L_19:
 00000024  E5100000  LDR         R0,=0xFFFF0714
 00000028  E5900000  LDR         R0,[R0,#0x0]
 0000002C  E3100020  TST         R0,#0x0020
 00000030  0AFFFFFB  BEQ         L_19  ; Targ=0x24
  120:         COMTX = 0x0D;                       // output CR 
 00000034  E3A0100D  MOV         R1,#0xD
 00000038  E5100000  LDR         R0,=0xFFFF0700
 0000003C  E5801000  STR         R1,[R0,#0x0]
  121:     while(!(0x020==(COMSTA0 & 0x020))){}
 00000040          L_23:
 00000040  E5100000  LDR         R0,=0xFFFF0714
 00000044  E5900000  LDR         R0,[R0,#0x0]
 00000048  E3100020  TST         R0,#0x0020
 0000004C  0AFFFFFB  BEQ         L_23  ; Targ=0x40
  122:         COMTX = hex2ascii ((to_send >> 8) & 0x0F);
 00000050  E1A00004  MOV         R0,R4 ; to_send
 00000054  E1A00800  MOV         R0,R0,LSL #16 ; to_send
 00000058  E1A00840  MOV         R0,R0,ASR #16
 0000005C  E1A00440  MOV         R0,R0,ASR #8
 00000060  E200000F  AND         R0,R0,#0x000F
 00000064  EBFFFFE5  BL          hex2ascii?A  ; Targ=0x0
 00000068  E1A01C00  MOV         R1,R0,LSL #24 ; hex2ascii?A
 0000006C  E1A01C21  MOV         R1,R1,LSR #24
 00000070  E5100000  LDR         R0,=0xFFFF0700
 00000074  E5801000  STR         R1,[R0,#0x0]
  123:     while(!(0x020==(COMSTA0 & 0x020))){}
 00000078          L_27:
 00000078  E5100000  LDR         R0,=0xFFFF0714
 0000007C  E5900000  LDR         R0,[R0,#0x0]
 00000080  E3100020  TST         R0,#0x0020
ARM COMPILER V2.40c,  WakeUpTimer                                                          10/10/05  16:57:03  PAGE 7   

 00000084  0AFFFFFB  BEQ         L_27  ; Targ=0x78
  124:         COMTX = hex2ascii ((to_send >> 4) & 0x0F);                      
 00000088  E1A00004  MOV         R0,R4 ; to_send
 0000008C  E1A00800  MOV         R0,R0,LSL #16 ; to_send
 00000090  E1A00840  MOV         R0,R0,ASR #16
 00000094  E1A00240  MOV         R0,R0,ASR #4
 00000098  E200000F  AND         R0,R0,#0x000F
 0000009C  EBFFFFD7  BL          hex2ascii?A  ; Targ=0x0
 000000A0  E1A01C00  MOV         R1,R0,LSL #24 ; hex2ascii?A
 000000A4  E1A01C21  MOV         R1,R1,LSR #24
 000000A8  E5100000  LDR         R0,=0xFFFF0700
 000000AC  E5801000  STR         R1,[R0,#0x0]
  125:     while(!(0x020==(COMSTA0 & 0x020))){}
 000000B0          L_31:
 000000B0  E5100000  LDR         R0,=0xFFFF0714
 000000B4  E5900000  LDR         R0,[R0,#0x0]
 000000B8  E3100020  TST         R0,#0x0020
 000000BC  0AFFFFFB  BEQ         L_31  ; Targ=0xB0
  126:         COMTX = hex2ascii (to_send & 0x0F); 
 000000C0  E1A00004  MOV         R0,R4 ; to_send
 000000C4  E1A00800  MOV         R0,R0,LSL #16 ; to_send
 000000C8  E1A00840  MOV         R0,R0,ASR #16
 000000CC  E200000F  AND         R0,R0,#0x000F
 000000D0  EBFFFFCA  BL          hex2ascii?A  ; Targ=0x0
 000000D4  E1A01C00  MOV         R1,R0,LSL #24 ; hex2ascii?A
 000000D8  E1A01C21  MOV         R1,R1,LSR #24
 000000DC  E5100000  LDR         R0,=0xFFFF0700
 000000E0  E5801000  STR         R1,[R0,#0x0]
  127: }
 000000E4  E8BD0010  LDMIA       R13!,{R4}
 000000E8  E8BD0008  LDMIA       R13!,{R3}
 000000EC  E12FFF13  BX          R3
 000000F0          ENDP ; 'senddata?A'


*** CODE SEGMENT '?PR?hex2ascii?A?WakeUpTimer':
  131: char hex2ascii(char toconv)
 00000000  E1A01000  MOV         R1,R0 ; toconv
 00000004  ---- Variable 'toconv' assigned to Register 'R1' ----
  133:     if (toconv<0x0A) 
 00000004  E1A00001  MOV         R0,R1 ; toconv
 00000008  E1A00C00  MOV         R0,R0,LSL #24 ; toconv
 0000000C  E1A00C20  MOV         R0,R0,LSR #24
 00000010  E350000A  CMP         R0,#0x000A
 00000014  AA000002  BGE         L_35  ; Targ=0x24
  135:         toconv += 0x30;
 00000018  E2811030  ADD         R1,R1,#0x0030 ; toconv
 0000001C  E20110FF  AND         R1,R1,#0x00FF
  136:     }
 00000020  EA000001  B           L_36  ; Targ=0x2C
 00000024          L_35:
  139:         toconv += 0x37;
 00000024  E2811037  ADD         R1,R1,#0x0037 ; toconv
 00000028  E20110FF  AND         R1,R1,#0x00FF
  140:     }    
 0000002C          L_36:
  141:     return (toconv);
 0000002C  E1A00001  MOV         R0,R1 ; toconv
 00000030  E1A00C00  MOV         R0,R0,LSL #24 ; toconv
 00000034  E1A00C20  MOV         R0,R0,LSR #24
  142: }
 00000038  E12FFF1E  BX          R14
 0000003C          ENDP ; 'hex2ascii?A'



Module Information          Static
----------------------------------
  code size            =    ------
  data size            =    ------
ARM COMPILER V2.40c,  WakeUpTimer                                                          10/10/05  16:57:03  PAGE 8   

  const size           =    ------
End of Module Information.


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

⌨️ 快捷键说明

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