📄 dso.txt
字号:
; generated by ARM C/C++ Compiler with , RVCT4.0 [Build 524] for uVision
; commandline ArmCC [--split_sections --debug -c --asm --interleave -o.\Obj\dso.o --depend=.\Obj\dso.d --device=DARMSTM --apcs=interwork -O0 -Otime -I..\..\Libraries\CMSIS\Core\CM3 -I..\..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\..\Source\inc -Id:\Keil\ARM\INC\ST\STM32F10x -D__MICROLIB -DSTM32F10X_HD -DUSE_STDPERIPH_DRIVER ..\..\Source\src\dso.c]
THUMB
AREA ||i.AdjustAtt||, CODE, READONLY, ALIGN=2
AdjustAtt PROC
;;;923 */
;;;924 static void AdjustAtt(uint8_t ch, uint8_t mode)
000000 2801 CMP r0,#1
;;;925 {
;;;926
;;;927 if (ch == 1)
000002 d125 BNE |L1.80|
;;;928 {
;;;929 if (mode == 0) /* 降低 */
000004 b951 CBNZ r1,|L1.28|
;;;930 {
;;;931 if (g_DSO.Ch1AttId > 0)
000006 4a26 LDR r2,|L1.160|
000008 7c12 LDRB r2,[r2,#0x10]
00000a 2a00 CMP r2,#0
00000c dd10 BLE |L1.48|
;;;932 {
;;;933 g_DSO.Ch1AttId--;
00000e 4a24 LDR r2,|L1.160|
000010 7c12 LDRB r2,[r2,#0x10]
000012 1e52 SUBS r2,r2,#1
000014 b2d3 UXTB r3,r2
000016 4a22 LDR r2,|L1.160|
000018 7413 STRB r3,[r2,#0x10]
00001a e009 B |L1.48|
|L1.28|
;;;934 }
;;;935 }
;;;936 else /* 增加 */
;;;937 {
;;;938 if (g_DSO.Ch1AttId < ATT_COUNT - 1)
00001c 4a20 LDR r2,|L1.160|
00001e 7c12 LDRB r2,[r2,#0x10]
000020 2a05 CMP r2,#5
000022 da05 BGE |L1.48|
;;;939 {
;;;940 g_DSO.Ch1AttId++;
000024 4a1e LDR r2,|L1.160|
000026 7c12 LDRB r2,[r2,#0x10]
000028 1c52 ADDS r2,r2,#1
00002a b2d3 UXTB r3,r2
00002c 4a1c LDR r2,|L1.160|
00002e 7413 STRB r3,[r2,#0x10]
|L1.48|
;;;941 }
;;;942 }
;;;943
;;;944 g_DSO.Ch1Attenuation = g_AttTable[g_DSO.Ch1AttId][0];
000030 4a1b LDR r2,|L1.160|
000032 7c12 LDRB r2,[r2,#0x10]
000034 4b1b LDR r3,|L1.164|
000036 f8533032 LDR r3,[r3,r2,LSL #3]
00003a 4a19 LDR r2,|L1.160|
00003c 6153 STR r3,[r2,#0x14]
;;;945 g_DSO.Ch1VScale = g_AttTable[g_DSO.Ch1AttId][1];
00003e 7c12 LDRB r2,[r2,#0x10]
000040 4b18 LDR r3,|L1.164|
000042 eb0302c2 ADD r2,r3,r2,LSL #3
000046 6852 LDR r2,[r2,#4]
000048 b293 UXTH r3,r2
00004a 4a15 LDR r2,|L1.160|
00004c 8393 STRH r3,[r2,#0x1c]
00004e e026 B |L1.158|
|L1.80|
;;;946 }
;;;947 else if (ch == 2)
000050 2802 CMP r0,#2
000052 d124 BNE |L1.158|
;;;948 {
;;;949 if (mode == 0) /* 降低 */
000054 b951 CBNZ r1,|L1.108|
;;;950 {
;;;951 if (g_DSO.Ch2AttId > 0)
000056 4a12 LDR r2,|L1.160|
000058 7c52 LDRB r2,[r2,#0x11]
00005a 2a00 CMP r2,#0
00005c dd10 BLE |L1.128|
;;;952 {
;;;953 g_DSO.Ch2AttId--;
00005e 4a10 LDR r2,|L1.160|
000060 7c52 LDRB r2,[r2,#0x11]
000062 1e52 SUBS r2,r2,#1
000064 b2d3 UXTB r3,r2
000066 4a0e LDR r2,|L1.160|
000068 7453 STRB r3,[r2,#0x11]
00006a e009 B |L1.128|
|L1.108|
;;;954 }
;;;955 }
;;;956 else /* 增加 */
;;;957 {
;;;958 if (g_DSO.Ch2AttId < ATT_COUNT - 1)
00006c 4a0c LDR r2,|L1.160|
00006e 7c52 LDRB r2,[r2,#0x11]
000070 2a05 CMP r2,#5
000072 da05 BGE |L1.128|
;;;959 {
;;;960 g_DSO.Ch2AttId++;
000074 4a0a LDR r2,|L1.160|
000076 7c52 LDRB r2,[r2,#0x11]
000078 1c52 ADDS r2,r2,#1
00007a b2d3 UXTB r3,r2
00007c 4a08 LDR r2,|L1.160|
00007e 7453 STRB r3,[r2,#0x11]
|L1.128|
;;;961 }
;;;962 }
;;;963 g_DSO.Ch2Attenuation = g_AttTable[g_DSO.Ch2AttId][0];
000080 4a07 LDR r2,|L1.160|
000082 7c52 LDRB r2,[r2,#0x11]
000084 4b07 LDR r3,|L1.164|
000086 f8533032 LDR r3,[r3,r2,LSL #3]
00008a 4a05 LDR r2,|L1.160|
00008c 6193 STR r3,[r2,#0x18]
;;;964 g_DSO.Ch2VScale = g_AttTable[g_DSO.Ch2AttId][1];
00008e 7c52 LDRB r2,[r2,#0x11]
000090 4b04 LDR r3,|L1.164|
000092 eb0302c2 ADD r2,r3,r2,LSL #3
000096 6852 LDR r2,[r2,#4]
000098 b293 UXTH r3,r2
00009a 4a01 LDR r2,|L1.160|
00009c 83d3 STRH r3,[r2,#0x1e]
|L1.158|
;;;965 }
;;;966 }
00009e 4770 BX lr
;;;967
ENDP
|L1.160|
DCD g_DSO+0x4000
|L1.164|
DCD g_AttTable
AREA ||i.DecSampleFreq||, CODE, READONLY, ALIGN=2
DecSampleFreq PROC
;;;903 */
;;;904 static void DecSampleFreq(void)
000000 b510 PUSH {r4,lr}
;;;905 {
;;;906 if (g_DSO.TimeBaseId > 0)
000002 480d LDR r0,|L2.56|
000004 6840 LDR r0,[r0,#4]
000006 b120 CBZ r0,|L2.18|
;;;907 {
;;;908 g_DSO.TimeBaseId--;
000008 480b LDR r0,|L2.56|
00000a 6840 LDR r0,[r0,#4]
00000c 1e41 SUBS r1,r0,#1
00000e 480a LDR r0,|L2.56|
000010 6041 STR r1,[r0,#4]
|L2.18|
;;;909 }
;;;910
;;;911 g_DSO.TimeBase = g_TimeTable[g_DSO.TimeBaseId];
000012 4809 LDR r0,|L2.56|
000014 6840 LDR r0,[r0,#4]
000016 4909 LDR r1,|L2.60|
000018 f8511020 LDR r1,[r1,r0,LSL #2]
00001c 4806 LDR r0,|L2.56|
00001e 60c1 STR r1,[r0,#0xc]
;;;912 g_DSO.SampleFreq = 25000000 / g_DSO.TimeBase;
000020 68c0 LDR r0,[r0,#0xc]
000022 4907 LDR r1,|L2.64|
000024 fbb1f1f0 UDIV r1,r1,r0
000028 4803 LDR r0,|L2.56|
00002a 6081 STR r1,[r0,#8]
;;;913
;;;914 SetSampRate(g_DSO.SampleFreq); /* 改变采样频率 */
00002c 4601 MOV r1,r0
00002e 6888 LDR r0,[r1,#8]
000030 f7fffffe BL SetSampRate
;;;915 }
000034 bd10 POP {r4,pc}
;;;916
ENDP
000036 0000 DCW 0x0000
|L2.56|
DCD g_DSO+0x4000
|L2.60|
DCD g_TimeTable
|L2.64|
DCD 0x017d7840
AREA ||i.DispButton||, CODE, READONLY, ALIGN=2
DispButton PROC
;;;503 */
;;;504 static void DispButton(void)
000000 b510 PUSH {r4,lr}
;;;505 {
;;;506 LCD_SetTextColor(White); /* 选择白色 */
000002 f64f70ff MOV r0,#0xffff
000006 f7fffffe BL LCD_SetTextColor
;;;507
;;;508 /* 绘制一个实线矩形框 x, y, h, w */
;;;509 LCD_DrawRect(320, 19, 25, 70);
00000a 2346 MOVS r3,#0x46
00000c 2219 MOVS r2,#0x19
00000e 2113 MOVS r1,#0x13
000010 f44f70a0 MOV r0,#0x140
000014 f7fffffe BL LCD_DrawRect
;;;510 LCD_DisplayString(323, 24, "扩展按钮");
000018 a209 ADR r2,|L3.64|
00001a 2118 MOVS r1,#0x18
00001c f2401043 MOV r0,#0x143
000020 f7fffffe BL LCD_DisplayString
;;;511
;;;512 LCD_DrawRect(320, 55, 25, 70);
000024 2346 MOVS r3,#0x46
000026 2219 MOVS r2,#0x19
000028 2137 MOVS r1,#0x37
00002a f44f70a0 MOV r0,#0x140
00002e f7fffffe BL LCD_DrawRect
;;;513 LCD_DisplayString(323, 60, "扩展按钮");
000032 a203 ADR r2,|L3.64|
000034 213c MOVS r1,#0x3c
000036 f2401043 MOV r0,#0x143
00003a f7fffffe BL LCD_DisplayString
;;;514
;;;515 }
00003e bd10 POP {r4,pc}
;;;516
ENDP
|L3.64|
000040 c0a9d5b9b0b4c5a500 DCB 192,169,213,185,176,180,197,165,0
000049 00 DCB 0
00004a 00 DCB 0
00004b 00 DCB 0
AREA ||i.DispCh1Wave||, CODE, READONLY, ALIGN=2
DispCh1Wave PROC
;;;522 */
;;;523 static void DispCh1Wave(void)
000000 e92d41f0 PUSH {r4-r8,lr}
;;;524 {
;;;525 int16_t i; /* 有符号数 */
;;;526 //uint16_t pos;
;;;527 uint16_t *px;
;;;528 uint16_t *py;
;;;529 int16_t iTemp;
;;;530
;;;531 static uint8_t s_DispFirst = 0; /* 用于第一次调用时刷屏 */
;;;532
;;;533 /* 显示通道1电平标记 */
;;;534 {
;;;535 static uint16_t y = 70;
;;;536
;;;537 LCD_SetTextColor(Blue); /* 选择蓝色 */
000004 201f MOVS r0,#0x1f
000006 f7fffffe BL LCD_SetTextColor
;;;538 LCD_DrawLine(1, y, 6, Horizontal);
00000a 2300 MOVS r3,#0
00000c 2206 MOVS r2,#6
00000e 4845 LDR r0,|L4.292|
000010 8801 LDRH r1,[r0,#0] ; y
000012 2001 MOVS r0,#1
000014 f7fffffe BL LCD_DrawLine
;;;539
;;;540 y = g_DSO.Ch1VOffset;
000018 4843 LDR r0,|L4.296|
00001a 8d40 LDRH r0,[r0,#0x2a]
00001c 4941 LDR r1,|L4.292|
00001e 8008 STRH r0,[r1,#0]
;;;541
;;;542 if (y < 20)
000020 4608 MOV r0,r1
000022 8800 LDRH r0,[r0,#0] ; y
000024 2814 CMP r0,#0x14
000026 da02 BGE |L4.46|
;;;543 {
;;;544 y = 20;
000028 2014 MOVS r0,#0x14
00002a 8008 STRH r0,[r1,#0]
00002c e006 B |L4.60|
|L4.46|
;;;545 }
;;;546 else if (y > 220)
00002e 483d LDR r0,|L4.292|
000030 8800 LDRH r0,[r0,#0] ; y
000032 28dc CMP r0,#0xdc
000034 dd02 BLE |L4.60|
;;;547 {
;;;548 y = 220;
000036 20dc MOVS r0,#0xdc
000038 493a LDR r1,|L4.292|
00003a 8008 STRH r0,[r1,#0]
|L4.60|
;;;549 }
;;;550 LCD_SetTextColor(Yellow); /* 选择白色 */
00003c f64f70e0 MOV r0,#0xffe0
000040 f7fffffe BL LCD_SetTextColor
;;;551 LCD_DrawLine(1, y, 6, Horizontal);
000044 2300 MOVS r3,#0
000046 2206 MOVS r2,#6
000048 4836 LDR r0,|L4.292|
00004a 8801 LDRH r1,[r0,#0] ; y
00004c 2001 MOVS r0,#1
00004e f7fffffe BL LCD_DrawLine
;;;552 }
;;;553
;;;554 if (s_DispFirst == 0)
000052 4834 LDR r0,|L4.292|
000054 1e80 SUBS r0,r0,#2
000056 7800 LDRB r0,[r0,#0] ; s_DispFirst
000058 b930 CBNZ r0,|L4.104|
;;;555 {
;;;556 s_DispFirst = 1;
00005a 2001 MOVS r0,#1
00005c 4931 LDR r1,|L4.292|
00005e 1e89 SUBS r1,r1,#2
000060 7008 STRB r0,[r1,#0]
;;;557 LCD_Clear(Blue); /* 清屏,背景蓝色 */
000062 201f MOVS r0,#0x1f
000064 f7fffffe BL LCD_Clear
|L4.104|
;;;558 }
;;;559
;;;560 if (g_DSO.BufUsed == 0)
000068 4830 LDR r0,|L4.300|
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -