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

📄 dso.txt

📁 STM32手持式示波器源代码
💻 TXT
📖 第 1 页 / 共 5 页
字号:

0000ee  0000              DCW      0x0000
                  |L5.240|
                          DCD      ||.data||+0x4
                  |L5.244|
                          DCD      g_DSO+0x4000
                  |L5.248|
                          DCD      g_DSO+0x5000
                  |L5.252|
                          DCD      g_DSO+0x49e0
                  |L5.256|
                          DCD      g_DSO+0x4eb8
                  |L5.260|
                          DCD      g_DSO+0x2000
                  |L5.264|
                          DCD      g_DSO+0x5124
                  |L5.268|
                          DCD      g_DSO+0x4c4c

                          AREA ||i.DispChInfo||, CODE, READONLY, ALIGN=2

                  DispChInfo PROC
;;;699    */
;;;700    static void DispChInfo(void)
000000  b510              PUSH     {r4,lr}
;;;701    {
000002  b088              SUB      sp,sp,#0x20
;;;702    	char buf[32];   /* 字符显示缓冲区 */
;;;703    
;;;704    	/* 显示示波器程序版本 */
;;;705    	LCD_SetTextColor(White);   /* 白字 */
000004  f64f70ff          MOV      r0,#0xffff
000008  f7fffffe          BL       LCD_SetTextColor
;;;706    	LCD_SetBackColor(Blue);		/* 蓝底 */
00000c  201f              MOVS     r0,#0x1f
00000e  f7fffffe          BL       LCD_SetBackColor
;;;707    	LCD_DisplayString(10, 2, DSO_VER);
000012  a271              ADR      r2,|L6.472|
000014  2102              MOVS     r1,#2
000016  200a              MOVS     r0,#0xa
000018  f7fffffe          BL       LCD_DisplayString
;;;708    
;;;709    	/* 显示通道1信息 */
;;;710    	if (g_DSO.Ch1DC == 1)
00001c  4870              LDR      r0,|L6.480|
00001e  f8900028          LDRB     r0,[r0,#0x28]
000022  2801              CMP      r0,#1
000024  d104              BNE      |L6.48|
;;;711    	{
;;;712    		strcpy(buf, "CH1 DC ");
000026  a16f              ADR      r1,|L6.484|
000028  4668              MOV      r0,sp
00002a  f7fffffe          BL       strcpy
00002e  e003              B        |L6.56|
                  |L6.48|
;;;713    	}
;;;714    	else
;;;715    	{
;;;716    		strcpy(buf, "CH1 AC ");
000030  a16e              ADR      r1,|L6.492|
000032  4668              MOV      r0,sp
000034  f7fffffe          BL       strcpy
                  |L6.56|
;;;717    	}
;;;718    
;;;719    	if (g_DSO.Ch1VScale >= 1000)
000038  4869              LDR      r0,|L6.480|
00003a  8b80              LDRH     r0,[r0,#0x1c]
00003c  f5b07f7a          CMP      r0,#0x3e8
000040  db0c              BLT      |L6.92|
;;;720    	{
;;;721    		sprintf(&buf[7], "%d.00V", g_DSO.Ch1VScale / 1000);
000042  4867              LDR      r0,|L6.480|
000044  8b80              LDRH     r0,[r0,#0x1c]
000046  f44f717a          MOV      r1,#0x3e8
00004a  fb90f4f1          SDIV     r4,r0,r1
00004e  4622              MOV      r2,r4
000050  a168              ADR      r1,|L6.500|
000052  f10d0007          ADD      r0,sp,#7
000056  f7fffffe          BL       __2sprintf
00005a  e006              B        |L6.106|
                  |L6.92|
;;;722    	}
;;;723    	else
;;;724    	{
;;;725    		sprintf(&buf[7], "%dmV", g_DSO.Ch1VScale);
00005c  4860              LDR      r0,|L6.480|
00005e  8b82              LDRH     r2,[r0,#0x1c]
000060  a166              ADR      r1,|L6.508|
000062  f10d0007          ADD      r0,sp,#7
000066  f7fffffe          BL       __2sprintf
                  |L6.106|
;;;726    	}
;;;727    
;;;728    	if (g_DSO.ActiveCH == 1)
00006a  485d              LDR      r0,|L6.480|
00006c  f890002e          LDRB     r0,[r0,#0x2e]
000070  2801              CMP      r0,#1
000072  d108              BNE      |L6.134|
;;;729    	{
;;;730    		LCD_SetTextColor(Yellow);   /* 白字 */
000074  f64f70e0          MOV      r0,#0xffe0
000078  f7fffffe          BL       LCD_SetTextColor
;;;731    		LCD_SetBackColor(Magenta);	/* 蓝底 */
00007c  f64f001f          MOV      r0,#0xf81f
000080  f7fffffe          BL       LCD_SetBackColor
000084  e006              B        |L6.148|
                  |L6.134|
;;;732    	}
;;;733    	else
;;;734    	{
;;;735    		LCD_SetTextColor(Yellow);   /* 黄字 */
000086  f64f70e0          MOV      r0,#0xffe0
00008a  f7fffffe          BL       LCD_SetTextColor
;;;736    		LCD_SetBackColor(Blue);		/* 蓝底 */
00008e  201f              MOVS     r0,#0x1f
000090  f7fffffe          BL       LCD_SetBackColor
                  |L6.148|
;;;737    	}
;;;738    
;;;739    	LCD_DisplayString(10, 224, (uint8_t *)buf);
000094  466a              MOV      r2,sp
000096  21e0              MOVS     r1,#0xe0
000098  200a              MOVS     r0,#0xa
00009a  f7fffffe          BL       LCD_DisplayString
;;;740    
;;;741    	/* 显示通道2信息 */
;;;742    	LCD_SetTextColor(Red);  /* CH2 红色 */
00009e  f44f4078          MOV      r0,#0xf800
0000a2  f7fffffe          BL       LCD_SetTextColor
;;;743    	if (g_DSO.Ch2DC == 1)
0000a6  484e              LDR      r0,|L6.480|
0000a8  f8900029          LDRB     r0,[r0,#0x29]
0000ac  2801              CMP      r0,#1
0000ae  d104              BNE      |L6.186|
;;;744    	{
;;;745    		strcpy(buf, "CH2 DC ");
0000b0  a154              ADR      r1,|L6.516|
0000b2  4668              MOV      r0,sp
0000b4  f7fffffe          BL       strcpy
0000b8  e003              B        |L6.194|
                  |L6.186|
;;;746    	}
;;;747    	else
;;;748    	{
;;;749    		strcpy(buf, "CH2 AC ");
0000ba  a154              ADR      r1,|L6.524|
0000bc  4668              MOV      r0,sp
0000be  f7fffffe          BL       strcpy
                  |L6.194|
;;;750    	}
;;;751    
;;;752    	if (g_DSO.Ch2VScale >= 1000)
0000c2  4847              LDR      r0,|L6.480|
0000c4  8bc0              LDRH     r0,[r0,#0x1e]
0000c6  f5b07f7a          CMP      r0,#0x3e8
0000ca  db0c              BLT      |L6.230|
;;;753    	{
;;;754    		sprintf(&buf[7], "%d.00V", g_DSO.Ch2VScale / 1000);
0000cc  4844              LDR      r0,|L6.480|
0000ce  8bc0              LDRH     r0,[r0,#0x1e]
0000d0  f44f717a          MOV      r1,#0x3e8
0000d4  fb90f4f1          SDIV     r4,r0,r1
0000d8  4622              MOV      r2,r4
0000da  a146              ADR      r1,|L6.500|
0000dc  f10d0007          ADD      r0,sp,#7
0000e0  f7fffffe          BL       __2sprintf
0000e4  e006              B        |L6.244|
                  |L6.230|
;;;755    	}
;;;756    	else
;;;757    	{
;;;758    		sprintf(&buf[7], "%dmV", g_DSO.Ch2VScale);
0000e6  483e              LDR      r0,|L6.480|
0000e8  8bc2              LDRH     r2,[r0,#0x1e]
0000ea  a144              ADR      r1,|L6.508|
0000ec  f10d0007          ADD      r0,sp,#7
0000f0  f7fffffe          BL       __2sprintf
                  |L6.244|
;;;759    	}
;;;760    	if (g_DSO.ActiveCH == 2)
0000f4  483a              LDR      r0,|L6.480|
0000f6  f890002e          LDRB     r0,[r0,#0x2e]
0000fa  2802              CMP      r0,#2
0000fc  d108              BNE      |L6.272|
;;;761    	{
;;;762    		LCD_SetTextColor(Green);   	/* 红字 */
0000fe  f44f60fc          MOV      r0,#0x7e0
000102  f7fffffe          BL       LCD_SetTextColor
;;;763    		LCD_SetBackColor(Magenta);	/* 蓝底 */
000106  f64f001f          MOV      r0,#0xf81f
00010a  f7fffffe          BL       LCD_SetBackColor
00010e  e006              B        |L6.286|
                  |L6.272|
;;;764    	}
;;;765    	else
;;;766    	{
;;;767    		LCD_SetTextColor(Green);   /* 红字 */
000110  f44f60fc          MOV      r0,#0x7e0
000114  f7fffffe          BL       LCD_SetTextColor
;;;768    		LCD_SetBackColor(Blue);	/* 蓝底 */
000118  201f              MOVS     r0,#0x1f
00011a  f7fffffe          BL       LCD_SetBackColor
                  |L6.286|
;;;769    	}
;;;770    	LCD_DisplayString(120, 224, (uint8_t *)buf);
00011e  466a              MOV      r2,sp
000120  21e0              MOVS     r1,#0xe0
000122  2078              MOVS     r0,#0x78
000124  f7fffffe          BL       LCD_DisplayString
;;;771    
;;;772    	/* 显示时基 */
;;;773    	LCD_SetTextColor(White);  /* 时基白色 */
000128  f64f70ff          MOV      r0,#0xffff
00012c  f7fffffe          BL       LCD_SetTextColor
;;;774    	LCD_SetBackColor(Blue);		/* 蓝底 */
000130  201f              MOVS     r0,#0x1f
000132  f7fffffe          BL       LCD_SetBackColor
;;;775    
;;;776    	if (g_DSO.TimeBase < 1000)
000136  482a              LDR      r0,|L6.480|
000138  68c0              LDR      r0,[r0,#0xc]
00013a  f5b07f7a          CMP      r0,#0x3e8
00013e  d206              BCS      |L6.334|
;;;777    	{
;;;778    		sprintf(buf, "Time %3dus", g_DSO.TimeBase);
000140  4827              LDR      r0,|L6.480|
000142  a134              ADR      r1,|L6.532|
000144  68c2              LDR      r2,[r0,#0xc]
000146  4668              MOV      r0,sp
000148  f7fffffe          BL       __2sprintf
00014c  e01a              B        |L6.388|
                  |L6.334|
;;;779    	}
;;;780    	else if (g_DSO.TimeBase < 1000000)
00014e  4824              LDR      r0,|L6.480|
000150  68c0              LDR      r0,[r0,#0xc]
000152  4933              LDR      r1,|L6.544|
000154  4288              CMP      r0,r1
000156  d20b              BCS      |L6.368|
;;;781    	{
;;;782    		sprintf(buf, "Time %3dms", g_DSO.TimeBase / 1000);
000158  4821              LDR      r0,|L6.480|
00015a  68c0              LDR      r0,[r0,#0xc]
00015c  f44f717a          MOV      r1,#0x3e8
000160  fbb0f4f1          UDIV     r4,r0,r1
000164  4622              MOV      r2,r4
000166  a12f              ADR      r1,|L6.548|
000168  4668              MOV      r0,sp
00016a  f7fffffe          BL       __2sprintf
00016e  e009              B        |L6.388|
                  |L6.368|
;;;783    	}
;;;784    	else
;;;785    	{
;;;786    		sprintf(buf, "Time %3ds ", g_DSO.TimeBase / 1000000);	
000170  481b              LDR      r0,|L6.480|
000172  68c0              LDR      r0,[r0,#0xc]
000174  492a              LDR      r1,|L6.544|
000176  fbb0f4f1          UDIV     r4,r0,r1
00017a  4622              MOV      r2,r4
00017c  a12c              ADR      r1,|L6.560|
00017e  4668              MOV      r0,sp
000180  f7fffffe          BL       __2sprintf
                  |L6.388|
;;;787    	}
;;;788    	LCD_DisplayString(230, 224, (uint8_t *)buf);
000184  466a              MOV      r2,sp
000186  21e0              MOVS     r1,#0xe0
000188  20e6              MOVS     r0,#0xe6
00018a  f7fffffe          BL       LCD_DisplayString
;;;789    
;;;790    
;;;791    	/* 显示调节模式 */
;;;792    	LCD_SetTextColor(White);   /* 白字 */
00018e  f64f70ff          MOV      r0,#0xffff
000192  f7fffffe          BL       LCD_SetTextColor
;;;793    	LCD_SetBackColor(Blue);	/* 蓝底 */
000196  201f              MOVS     r0,#0x1f
000198  f7fffffe          BL       LCD_SetBackColor
;;;794    	if (g_DSO.AdjustMode == 1)
00019c  4810              LDR      r0,|L6.480|
00019e  f890002f          LDRB     r0,[r0,#0x2f]
0001a2  2801              CMP      r0,#1
0001a4  d105              BNE      |L6.434|
;;;795    	{
;;;796    		LCD_DisplayString(245, 2, (uint8_t *)"调节位置");
0001a6  a225              ADR      r2,|L6.572|
0001a8  2102              MOVS     r1,#2
0001aa  20f5              MOVS     r0,#0xf5
0001ac  f7fffffe          BL       LCD_DisplayString
0001b0  e004              B        |L6.444|
                  |L6.434|
;;;797    	}
;;;798    	else
;;;799    	{
;;;800    		LCD_DisplayString(245, 2, (uint8_t *)"调节幅度");
0001b2  a225              ADR      r2,|L6.584|
0001b4  2102              MOVS     r1,#2
0001b6  20f5              MOVS     r0,#0xf5
0001b8  f7fffffe          BL       LCD_DisplayString
                  |L6.444|
;;;801    	}
;;;802    
;;;803    	sprintf(buf, "采样频率:%7dHz",	g_DSO.SampleFreq);
0001bc  4808              LDR      r0,|L6.480|
0001be  a125              ADR      r1,|L6.596|
0001c0  6882              LDR      r2,[r0,#8]
0001c2  4668              MOV      r0,sp
0001c4  f7fffffe          BL       __2sprintf
;;;804    	LCD_DisplayString(75, 2, (uint8_t *)buf);
0001c8  466a              MOV      r2,sp
0001ca  2102              MOVS     r1,#2
0001cc  204b              MOVS     r0,#0x4b
0001ce  f7fffffe          BL       LCD_DisplayString
;;;805    }
0001d2  b008              ADD      sp,sp,#0x20
0001d4  bd10              POP      {r4,pc}
;;;806    
                          ENDP

0001d6  0000              DCW      0x0000
                  |L6.472|
0001d8  56302e3600        DCB      "V0.6",0
0001dd  00                DCB      0
0001de  00                DCB      0
0001df  00                DCB      0
                  |L6.480|
                          DCD      g_DSO+0x4000
                  |L6.484|
0001e4  4348312044432000        DCB      "CH1 DC ",0

⌨️ 快捷键说明

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