📄 dso.txt
字号:
00006a f8900390 LDRB r0,[r0,#0x390]
00006e b920 CBNZ r0,|L4.122|
;;;561 {
;;;562 g_DSO.BufUsed = 1;
000070 2101 MOVS r1,#1
000072 482e LDR r0,|L4.300|
000074 f8801390 STRB r1,[r0,#0x390]
000078 e003 B |L4.130|
|L4.122|
;;;563 }
;;;564 else
;;;565 {
;;;566 g_DSO.BufUsed = 0;
00007a 2100 MOVS r1,#0
00007c 482b LDR r0,|L4.300|
00007e f8801390 STRB r1,[r0,#0x390]
|L4.130|
;;;567 }
;;;568
;;;569 if (g_DSO.BufUsed == 0)
000082 482a LDR r0,|L4.300|
000084 f8900390 LDRB r0,[r0,#0x390]
000088 b920 CBNZ r0,|L4.148|
;;;570 {
;;;571 px = g_DSO.xCh1Buf1;
00008a 4d27 LDR r5,|L4.296|
00008c 3530 ADDS r5,r5,#0x30
;;;572 py = g_DSO.yCh1Buf1;
00008e f505771b ADD r7,r5,#0x26c
000092 e002 B |L4.154|
|L4.148|
;;;573 }
;;;574 else
;;;575 {
;;;576 px = g_DSO.xCh1Buf2;
000094 4d26 LDR r5,|L4.304|
;;;577 py = g_DSO.yCh1Buf2;
000096 f505771b ADD r7,r5,#0x26c
|L4.154|
;;;578 }
;;;579
;;;580 /* 计算当前最新的数据位置,向前递减400个样本 */
;;;581 //pos = SAMPLE_COUNT - DMA_GetCurrDataCounter(DMA1_Channel1);
;;;582 //pos = 0;
;;;583
;;;584 /* CH1通道, 输入0V时,ADC采样值 = 1872 */
;;;585 for (i = 0; i < 300; i++)
00009a 2400 MOVS r4,#0
00009c e020 B |L4.224|
|L4.158|
;;;586 {
;;;587 px[i] = 10 + i;
00009e f104000a ADD r0,r4,#0xa
0000a2 f8250014 STRH r0,[r5,r4,LSL #1]
;;;588 iTemp = g_DSO.Ch1VOffset + (int16_t)((1872 - g_DSO.Ch1Buf[i + 1]) * 10) / g_DSO.Ch1Attenuation;
0000a6 4923 LDR r1,|L4.308|
0000a8 1c60 ADDS r0,r4,#1
0000aa f8310010 LDRH r0,[r1,r0,LSL #1]
0000ae f5c060ea RSB r0,r0,#0x750
0000b2 eb000080 ADD r0,r0,r0,LSL #2
0000b6 0040 LSLS r0,r0,#1
0000b8 b201 SXTH r1,r0
0000ba 481b LDR r0,|L4.296|
0000bc 6940 LDR r0,[r0,#0x14]
0000be fb91f1f0 SDIV r1,r1,r0
0000c2 4819 LDR r0,|L4.296|
0000c4 8d40 LDRH r0,[r0,#0x2a]
0000c6 4408 ADD r0,r0,r1
0000c8 b206 SXTH r6,r0
;;;589
;;;590 if (iTemp > 220)
0000ca 2edc CMP r6,#0xdc
0000cc dd01 BLE |L4.210|
;;;591 {
;;;592 iTemp = 220;
0000ce 26dc MOVS r6,#0xdc
0000d0 e002 B |L4.216|
|L4.210|
;;;593 }
;;;594 else if (iTemp < 20)
0000d2 2e14 CMP r6,#0x14
0000d4 da00 BGE |L4.216|
;;;595 {
;;;596 iTemp = 20;
0000d6 2614 MOVS r6,#0x14
|L4.216|
;;;597 }
;;;598 py[i] = iTemp;
0000d8 f8276014 STRH r6,[r7,r4,LSL #1]
0000dc 1c60 ADDS r0,r4,#1 ;585
0000de b204 SXTH r4,r0 ;585
|L4.224|
0000e0 f5b47f96 CMP r4,#0x12c ;585
0000e4 dbdb BLT |L4.158|
;;;599 }
;;;600
;;;601 /* 清除上帧波形 */
;;;602 if (g_DSO.BufUsed == 0)
0000e6 4811 LDR r0,|L4.300|
0000e8 f8900390 LDRB r0,[r0,#0x390]
0000ec b938 CBNZ r0,|L4.254|
;;;603 {
;;;604 LCD_DrawPoints(g_DSO.xCh1Buf2, g_DSO.yCh1Buf2, 300, Blue);
0000ee 231f MOVS r3,#0x1f
0000f0 f44f7296 MOV r2,#0x12c
0000f4 4910 LDR r1,|L4.312|
0000f6 480e LDR r0,|L4.304|
0000f8 f7fffffe BL LCD_DrawPoints
0000fc e007 B |L4.270|
|L4.254|
;;;605 }
;;;606 else
;;;607 {
;;;608 LCD_DrawPoints(g_DSO.xCh1Buf1, g_DSO.yCh1Buf1, 300, Blue);
0000fe 231f MOVS r3,#0x1f
000100 f44f7296 MOV r2,#0x12c
000104 490d LDR r1,|L4.316|
000106 f5a1701b SUB r0,r1,#0x26c
00010a f7fffffe BL LCD_DrawPoints
|L4.270|
;;;609 }
;;;610
;;;611 /* 显示更新的波形 */
;;;612 LCD_DrawPoints((uint16_t *)px, (uint16_t *)py, 300, Yellow);
00010e f64f73e0 MOV r3,#0xffe0
000112 f44f7296 MOV r2,#0x12c
000116 4639 MOV r1,r7
000118 4628 MOV r0,r5
00011a f7fffffe BL LCD_DrawPoints
;;;613 }
00011e e8bd81f0 POP {r4-r8,pc}
;;;614
ENDP
000122 0000 DCW 0x0000
|L4.292|
DCD ||.data||+0x2
|L4.296|
DCD g_DSO+0x4000
|L4.300|
DCD g_DSO+0x5000
|L4.304|
DCD g_DSO+0x4508
|L4.308|
DCD g_DSO
|L4.312|
DCD g_DSO+0x4774
|L4.316|
DCD g_DSO+0x429c
AREA ||i.DispCh2Wave||, CODE, READONLY, ALIGN=2
DispCh2Wave PROC
;;;620 */
;;;621 static void DispCh2Wave(void)
000000 e92d41f0 PUSH {r4-r8,lr}
;;;622 {
;;;623 int16_t i; /* 有符号数 */
;;;624 //uint16_t pos;
;;;625 uint16_t *px;
;;;626 uint16_t *py;
;;;627 int16_t iTemp;
;;;628
;;;629 /* 显示通道2电平标记 */
;;;630 {
;;;631 static uint16_t y = 170;
;;;632
;;;633 LCD_SetTextColor(Blue); /* 选择蓝色 */
000004 201f MOVS r0,#0x1f
000006 f7fffffe BL LCD_SetTextColor
;;;634 LCD_DrawLine(1, y, 6, Horizontal);
00000a 2300 MOVS r3,#0
00000c 2206 MOVS r2,#6
00000e 4838 LDR r0,|L5.240|
000010 8801 LDRH r1,[r0,#0] ; y
000012 2001 MOVS r0,#1
000014 f7fffffe BL LCD_DrawLine
;;;635
;;;636 y = g_DSO.Ch2VOffset;
000018 4836 LDR r0,|L5.244|
00001a 8d80 LDRH r0,[r0,#0x2c]
00001c 4934 LDR r1,|L5.240|
00001e 8008 STRH r0,[r1,#0]
;;;637
;;;638 if (y < 20)
000020 4608 MOV r0,r1
000022 8800 LDRH r0,[r0,#0] ; y
000024 2814 CMP r0,#0x14
000026 da02 BGE |L5.46|
;;;639 {
;;;640 y = 20;
000028 2014 MOVS r0,#0x14
00002a 8008 STRH r0,[r1,#0]
00002c e006 B |L5.60|
|L5.46|
;;;641 }
;;;642 else if (y > 220)
00002e 4830 LDR r0,|L5.240|
000030 8800 LDRH r0,[r0,#0] ; y
000032 28dc CMP r0,#0xdc
000034 dd02 BLE |L5.60|
;;;643 {
;;;644 y = 220;
000036 20dc MOVS r0,#0xdc
000038 492d LDR r1,|L5.240|
00003a 8008 STRH r0,[r1,#0]
|L5.60|
;;;645 }
;;;646 LCD_SetTextColor(Green); /* 选择白色 */
00003c f44f60fc MOV r0,#0x7e0
000040 f7fffffe BL LCD_SetTextColor
;;;647 LCD_DrawLine(1, y, 6, Horizontal);
000044 2300 MOVS r3,#0
000046 2206 MOVS r2,#6
000048 4829 LDR r0,|L5.240|
00004a 8801 LDRH r1,[r0,#0] ; y
00004c 2001 MOVS r0,#1
00004e f7fffffe BL LCD_DrawLine
;;;648 }
;;;649
;;;650 if (g_DSO.BufUsed == 0)
000052 4829 LDR r0,|L5.248|
000054 f8900390 LDRB r0,[r0,#0x390]
000058 b918 CBNZ r0,|L5.98|
;;;651 {
;;;652 px = g_DSO.xCh2Buf1;
00005a 4d28 LDR r5,|L5.252|
;;;653 py = g_DSO.yCh2Buf1;
00005c f505771b ADD r7,r5,#0x26c
000060 e002 B |L5.104|
|L5.98|
;;;654 }
;;;655 else
;;;656 {
;;;657 px = g_DSO.xCh2Buf2;
000062 4d27 LDR r5,|L5.256|
;;;658 py = g_DSO.yCh2Buf2;
000064 f505771b ADD r7,r5,#0x26c
|L5.104|
;;;659 }
;;;660
;;;661 /* 计算当前最新的数据位置,向前递减400个样本 */
;;;662 //pos = SAMPLE_COUNT - DMA_GetCurrDataCounter(DMA2_Channel5);
;;;663 //pos = 0;
;;;664
;;;665 for (i = 0; i < 300; i++)
000068 2400 MOVS r4,#0
00006a e020 B |L5.174|
|L5.108|
;;;666 {
;;;667 px[i] = 10 + i;
00006c f104000a ADD r0,r4,#0xa
000070 f8250014 STRH r0,[r5,r4,LSL #1]
;;;668 iTemp = g_DSO.Ch2VOffset + (int16_t)((1872 - g_DSO.Ch2Buf[i + 1]) * 10) / g_DSO.Ch2Attenuation;
000074 4923 LDR r1,|L5.260|
000076 1c60 ADDS r0,r4,#1
000078 f8310010 LDRH r0,[r1,r0,LSL #1]
00007c f5c060ea RSB r0,r0,#0x750
000080 eb000080 ADD r0,r0,r0,LSL #2
000084 0040 LSLS r0,r0,#1
000086 b201 SXTH r1,r0
000088 481a LDR r0,|L5.244|
00008a 6980 LDR r0,[r0,#0x18]
00008c fb91f1f0 SDIV r1,r1,r0
000090 4818 LDR r0,|L5.244|
000092 8d80 LDRH r0,[r0,#0x2c]
000094 4408 ADD r0,r0,r1
000096 b206 SXTH r6,r0
;;;669
;;;670 if (iTemp > 220)
000098 2edc CMP r6,#0xdc
00009a dd01 BLE |L5.160|
;;;671 {
;;;672 iTemp = 220;
00009c 26dc MOVS r6,#0xdc
00009e e002 B |L5.166|
|L5.160|
;;;673 }
;;;674 else if (iTemp < 20)
0000a0 2e14 CMP r6,#0x14
0000a2 da00 BGE |L5.166|
;;;675 {
;;;676 iTemp = 20;
0000a4 2614 MOVS r6,#0x14
|L5.166|
;;;677 }
;;;678 py[i] = iTemp;
0000a6 f8276014 STRH r6,[r7,r4,LSL #1]
0000aa 1c60 ADDS r0,r4,#1 ;665
0000ac b204 SXTH r4,r0 ;665
|L5.174|
0000ae f5b47f96 CMP r4,#0x12c ;665
0000b2 dbdb BLT |L5.108|
;;;679 }
;;;680
;;;681 /* 清除上帧波形 */
;;;682 if (g_DSO.BufUsed == 0)
0000b4 4810 LDR r0,|L5.248|
0000b6 f8900390 LDRB r0,[r0,#0x390]
0000ba b938 CBNZ r0,|L5.204|
;;;683 {
;;;684 LCD_DrawPoints(g_DSO.xCh2Buf2, g_DSO.yCh2Buf2, 300, Blue);
0000bc 231f MOVS r3,#0x1f
0000be f44f7296 MOV r2,#0x12c
0000c2 4911 LDR r1,|L5.264|
0000c4 480e LDR r0,|L5.256|
0000c6 f7fffffe BL LCD_DrawPoints
0000ca e006 B |L5.218|
|L5.204|
;;;685 }
;;;686 else
;;;687 {
;;;688 LCD_DrawPoints(g_DSO.xCh2Buf1, g_DSO.yCh2Buf1, 300, Blue);
0000cc 231f MOVS r3,#0x1f
0000ce f44f7296 MOV r2,#0x12c
0000d2 490e LDR r1,|L5.268|
0000d4 4809 LDR r0,|L5.252|
0000d6 f7fffffe BL LCD_DrawPoints
|L5.218|
;;;689 }
;;;690 /* 显示更新的波形 */
;;;691 LCD_DrawPoints((uint16_t *)px, (uint16_t *)py, 300, Green);
0000da f44f63fc MOV r3,#0x7e0
0000de f44f7296 MOV r2,#0x12c
0000e2 4639 MOV r1,r7
0000e4 4628 MOV r0,r5
0000e6 f7fffffe BL LCD_DrawPoints
;;;692 }
0000ea e8bd81f0 POP {r4-r8,pc}
;;;693
ENDP
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -