📄 combustible_test.txt
字号:
; generated by ARM/Thumb C/C++ Compiler with , RVCT3.1 [Build 939] for uVision
; commandline ArmCC [--debug -c --asm --interleave -o".\NOR FLASH\combustible_test.o" --depend=".\NOR FLASH\combustible_test.d" --device=DARMSS9 --apcs=interwork -O0 -I..\Common\Inc -I.\Include -IC:\Keil\ARM\INC\Samsung --omf_browse=".\NOR FLASH\combustible_test.crf" Source\combustible_test.c]
ARM
AREA ||.text||, CODE, READONLY, ALIGN=2
adc_test PROC
;;;33 void adc_test(void)
;;;34 {
000000 e92d43f0 PUSH {r4-r9,lr}
000004 e24dd01c SUB sp,sp,#0x1c
;;;35 int i,j;
;;;36 UINT16T usConData;
;;;37 float usEndData;
;;;38
;;;39 uart_printf("\n ADC_IN Test\n");
000008 e28f0f5f ADR r0,|L1.396|
00000c ebfffffe BL uart_printf
;;;40 uart_printf(" ADC conv. freq. = %dHz\n",ADC_FREQ);
000010 e59f1184 LDR r1,|L1.412|
000014 e28f0f61 ADR r0,|L1.416|
000018 ebfffffe BL uart_printf
;;;41 unPreScaler = PCLK/ADC_FREQ - 1;
00001c e3a00013 MOV r0,#0x13
000020 e59f1194 LDR r1,|L1.444|
000024 e5c10000 STRB r0,[r1,#0] ; unPreScaler
;;;42
;;;43 // Enable prescaler,ain1,normal,start by read
;;;44 rADCCON=(1<<14)|(unPreScaler<<6)|(1<<3)|(0<<2)|(1<<1);
000028 e2810000 ADD r0,r1,#0
00002c e5d00000 LDRB r0,[r0,#0] ; unPreScaler
000030 e3a01901 MOV r1,#0x4000
000034 e1810300 ORR r0,r1,r0,LSL #6
000038 e380000a ORR r0,r0,#0xa
00003c e3a01316 MOV r1,#0x58000000
000040 e5810000 STR r0,[r1,#0]
;;;45 uart_printf(" Please adjust AIN0 value!\n");
000044 e28f0f5d ADR r0,|L1.448|
000048 ebfffffe BL uart_printf
;;;46 uart_printf(" The results of ADC are:\n");
00004c e28f0f62 ADR r0,|L1.476|
000050 ebfffffe BL uart_printf
;;;47 usConData=rADCDAT0&0x3FF;
000054 e3a00316 MOV r0,#0x58000000
000058 e590000c LDR r0,[r0,#0xc]
00005c e1a06b00 LSL r6,r0,#22
000060 e1a06b26 LSR r6,r6,#22
;;;48
;;;49 // Sample and show data by UART
;;;50 for(j = 0; j < 20; j++)
000064 e3a05000 MOV r5,#0
000068 ea000040 B |L1.368|
|L1.108|
;;;51 {
;;;52 while(!(rADCCON & 0x8000));
00006c e1a00000 MOV r0,r0
|L1.112|
000070 e3a00316 MOV r0,#0x58000000
000074 e5900000 LDR r0,[r0,#0]
000078 e3100902 TST r0,#0x8000
00007c 0afffffb BEQ |L1.112|
;;;53 usConData = rADCDAT0&0x3FF;
000080 e3a00316 MOV r0,#0x58000000
000084 e590000c LDR r0,[r0,#0xc]
000088 e1a06b00 LSL r6,r0,#22
00008c e1a06b26 LSR r6,r6,#22
;;;54 uart_printf(" %0.4fmmmm",usConData);
000090 e1a01006 MOV r1,r6
000094 e28f0f57 ADR r0,|L1.504|
000098 ebfffffe BL uart_printf
;;;55 usEndData = usConData * 3.3000 / 0x3FF;
00009c e1a00006 MOV r0,r6
0000a0 ebfffffe BL __aeabi_ui2d
0000a4 e58d0010 STR r0,[sp,#0x10]
0000a8 e58d1014 STR r1,[sp,#0x14]
0000ac e28f0e15 ADR r0,|L1.516|
0000b0 e890000c LDM r0,{r2,r3}
0000b4 e59d0010 LDR r0,[sp,#0x10]
0000b8 ebfffffe BL __aeabi_dmul
0000bc e58d0008 STR r0,[sp,#8]
0000c0 e58d100c STR r1,[sp,#0xc]
0000c4 e28f0d05 ADR r0,|L1.524|
0000c8 e890000c LDM r0,{r2,r3}
0000cc e59d0008 LDR r0,[sp,#8]
0000d0 ebfffffe BL __aeabi_ddiv
0000d4 e88d0003 STM sp,{r0,r1}
0000d8 ebfffffe BL __aeabi_d2f
0000dc e1a07000 MOV r7,r0
;;;56 uart_printf(" %0.4fnnn ",usEndData);
0000e0 e1a00007 MOV r0,r7
0000e4 ebfffffe BL __aeabi_f2d
0000e8 e58d0010 STR r0,[sp,#0x10]
0000ec e58d1014 STR r1,[sp,#0x14]
0000f0 e1a03001 MOV r3,r1
0000f4 e1a02000 MOV r2,r0
0000f8 e28f0f45 ADR r0,|L1.532|
0000fc ebfffffe BL uart_printf
;;;57 usEndData = usEndData - (int)usEndData;
000100 e1a00007 MOV r0,r7
000104 ebfffffe BL __aeabi_f2iz
000108 e1a09000 MOV r9,r0
00010c ebfffffe BL __aeabi_i2f
000110 e1a08000 MOV r8,r0
000114 e1a01007 MOV r1,r7
000118 ebfffffe BL __aeabi_frsub
00011c e1a07000 MOV r7,r0
;;;58 for(i = 0; i < 4; i++)
000120 e3a04000 MOV r4,#0
000124 ea00000c B |L1.348|
|L1.296|
;;;59 {
;;;60 usEndData = usEndData*10;
000128 e59f10f0 LDR r1,|L1.544|
00012c e1a00007 MOV r0,r7
000130 ebfffffe BL __aeabi_fmul
000134 e1a07000 MOV r7,r0
;;;61 usEndData = usEndData-(int)usEndData;
000138 e1a00007 MOV r0,r7
00013c ebfffffe BL __aeabi_f2iz
000140 e1a09000 MOV r9,r0
000144 ebfffffe BL __aeabi_i2f
000148 e1a08000 MOV r8,r0
00014c e1a01007 MOV r1,r7
000150 ebfffffe BL __aeabi_frsub
000154 e1a07000 MOV r7,r0
000158 e2844001 ADD r4,r4,#1 ;58
|L1.348|
00015c e3540004 CMP r4,#4 ;58
000160 bafffff0 BLT |L1.296|
;;;62 }
;;;63 delay(10000);
000164 e59f00b8 LDR r0,|L1.548|
000168 ebfffffe BL delay
00016c e2855001 ADD r5,r5,#1 ;50
|L1.368|
000170 e3550014 CMP r5,#0x14 ;50
000174 baffffbc BLT |L1.108|
;;;64 }
;;;65 uart_printf(" End.\n");
000178 e28f00a8 ADR r0,|L1.552|
00017c ebfffffe BL uart_printf
;;;66
;;;67 }
000180 e28dd01c ADD sp,sp,#0x1c
000184 e8bd43f0 POP {r4-r9,lr}
000188 e12fff1e BX lr
ENDP
|L1.396|
00018c 0a204144 DCB "\n\40\101\104"
000190 435f494e DCB "C_IN"
000194 20546573 DCB " Tes"
000198 740a0000 DCB "t\n\0\0"
|L1.412|
00019c 002625a0 DCD 0x002625a0
|L1.416|
0001a0 20414443 DCB " ADC"
0001a4 20636f6e DCB " con"
0001a8 762e2066 DCB "v. f"
0001ac 7265712e DCB "req."
0001b0 203d2025 DCB " = %"
0001b4 64487a0a DCB "dHz\n"
0001b8 00000000 DCB "\0\0\0\0"
|L1.444|
0001bc 00000000 DCD unPreScaler
|L1.448|
0001c0 20506c65 DCB " Ple"
0001c4 61736520 DCB "ase "
0001c8 61646a75 DCB "adju"
0001cc 73742041 DCB "st A"
0001d0 494e3020 DCB "IN0 "
0001d4 76616c75 DCB "valu"
0001d8 65210a00 DCB "e!\n\0"
|L1.476|
0001dc 20546865 DCB " The"
0001e0 20726573 DCB " res"
0001e4 756c7473 DCB "ults"
0001e8 206f6620 DCB " of "
0001ec 41444320 DCB "ADC "
0001f0 6172653a DCB "are:"
0001f4 0a000000 DCB "\n\0\0\0"
|L1.504|
0001f8 2025302e DCB " %0."
0001fc 34666d6d DCB "4fmm"
000200 6d6d0000 DCB "mm\0\0"
|L1.516|
000204 66666666
000208 400a6666 DCFD 0x400a666666666666 ; 3.2999999999999998
|L1.524|
00020c 00000000
000210 408ff800 DCFD 0x408ff80000000000 ; 1023
|L1.532|
000214 2025302e DCB " %0."
000218 34666e6e DCB "4fnn"
00021c 6e200000 DCB "n \0\0"
|L1.544|
000220 41200000 DCD 0x41200000
|L1.548|
000224 00002710 DCD 0x00002710
|L1.552|
000228 20456e64 DCB " End"
00022c 2e0a0000 DCB ".\n\0\0"
AREA ||.data||, DATA, ALIGN=0
unPreScaler
000000 00 DCB 0x00
nEndTest
000001 00 DCB 0x00
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -