📄 wakeuptimer.lst
字号:
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 + -