📄 dso.txt
字号:
0000d8 51513a313239353734343633302020202020456d61696c3a61726d666c794071712e636f6d00 DCB "QQ:1295744630 Email:armfly@qq.com",0
0000fe 00 DCB 0
0000ff 00 DCB 0
|L9.256|
000100 b2d9d7f7cce1cabe3a00 DCB 178,217,215,247,204,225,202,190,":",0
00010a 00 DCB 0
00010b 00 DCB 0
|L9.268|
00010c 54414d504552bcfc203d20c7d0bbbbcda8b5c0bd DCB "TAMPER",188,252," = ",199,208,187,187,205,168,181,192,189
000120 b9b5e3a1a3434831bbf243483200 DCB 185,181,227,161,163,"CH1",187,242,"CH2",0
00012e 00 DCB 0
00012f 00 DCB 0
|L9.304|
000130 57414b455550bcfc203d20cfd4cabeb0efd6fabb DCB "WAKEUP",188,252," = ",207,212,202,190,176,239,214,250,187
000144 f2cdcbb3f6b0efd6fa00 DCB 242,205,203,179,246,176,239,214,250,0
00014e 00 DCB 0
00014f 00 DCB 0
|L9.336|
000150 555345522020bcfc203d20d4ddcda3bbf2cab5ca DCB "USER ",188,252," = ",212,221,205,163,187,242,202,181,202
000164 b1d4cbd0d000 DCB 177,212,203,208,208,0
00016a 00 DCB 0
00016b 00 DCB 0
|L9.364|
00016c d2a1b8cbc9cfbcfc203d20b7c5b4f3b2 DCB 210,161,184,203,201,207,188,252," = ",183,197,180,243,178
00017c a8d0ceb4b9d6b1b7f9b6c8bbf2cff2 DCB 168,208,206,180,185,214,177,183,249,182,200,187,242,207,242
00018b c9cfd2c6b6af00 DCB 201,207,210,198,182,175,0
000192 00 DCB 0
000193 00 DCB 0
|L9.404|
000194 d2a1b8cbcfc2bcfc203d20cbf5d0a1b2 DCB 210,161,184,203,207,194,188,252," = ",203,245,208,161,178
0001a4 a8d0ceb4b9d6b1b7f9b6c8bbf2cff2 DCB 168,208,206,180,185,214,177,183,249,182,200,187,242,207,242
0001b3 cfc2d2c6b6af00 DCB 207,194,210,198,182,175,0
0001ba 00 DCB 0
0001bb 00 DCB 0
|L9.444|
0001bc d2a1b8cbd7f3bcfc203d20cbaec6bdd5 DCB 210,161,184,203,215,243,188,252," = ",203,174,198,189,213
0001cc b9bfedb2a8d0ce00 DCB 185,191,237,178,168,208,206,0
|L9.468|
0001d4 d2a1b8cbd3d2bcfc203d20cbaec6bdcb DCB 210,161,184,203,211,210,188,252," = ",203,174,198,189,203
0001e4 f5d0a1b2a8d0ce00 DCB 245,208,161,178,168,208,206,0
|L9.492|
0001ec d2a1b8cb4f4bbcfc203d20c7d0bbbbd2a1 DCB 210,161,184,203,"OK",188,252," = ",199,208,187,187,210,161
0001fd b8cbb5f7bddac4a3cabda1a3b7f9b6 DCB 184,203,181,247,189,218,196,163,202,189,161,163,183,249,182
00020c c8bbf2cebbd6c300 DCB 200,187,242,206,187,214,195,0
AREA ||i.DsoHelp||, CODE, READONLY, ALIGN=1
DsoHelp PROC
;;;383 */
;;;384 static void DsoHelp(uint8_t *pMainStatus)
000000 e92d41f0 PUSH {r4-r8,lr}
;;;385 {
000004 4604 MOV r4,r0
;;;386 uint8_t KeyCode;
;;;387 uint16_t bright;
;;;388 uint8_t fRefresh = 1; /* LCD刷新标志 */
000006 2701 MOVS r7,#1
;;;389 uint8_t SubStatus = 0;
000008 f04f0800 MOV r8,#0
;;;390
;;;391 bright = GetBackLight(); /* 读取背光值 */
00000c f7fffffe BL GetBackLight
000010 4606 MOV r6,r0
;;;392 while (*pMainStatus == S_HELP)
000012 e031 B |L10.120|
|L10.20|
;;;393 {
;;;394 CPU_IDLE();
;;;395
;;;396 if (fRefresh)
000014 b12f CBZ r7,|L10.34|
;;;397 {
;;;398 fRefresh = 0;
000016 2700 MOVS r7,#0
;;;399
;;;400 if (SubStatus == 0)
000018 f1b80f00 CMP r8,#0
00001c d101 BNE |L10.34|
;;;401 {
;;;402 DispHelp1();
00001e f7fffffe BL DispHelp1
|L10.34|
;;;403 }
;;;404 }
;;;405
;;;406 /* 读取按键,大于0表示有键按下 */
;;;407 KeyCode = GetKey();
000022 f7fffffe BL GetKey
000026 4605 MOV r5,r0
;;;408 if (KeyCode > 0)
000028 2d00 CMP r5,#0
00002a dd25 BLE |L10.120|
;;;409 {
;;;410 /* 有键按下 */
;;;411 switch (KeyCode)
00002c 2d0b CMP r5,#0xb
00002e d221 BCS |L10.116|
000030 e8dff005 TBB [pc,r5]
000034 20092020 DCB 0x20,0x09,0x20,0x20
000038 08200d16 DCB 0x08,0x20,0x0d,0x16
00003c 06070a00 DCB 0x06,0x07,0x0a,0x00
;;;412 {
;;;413 case KEY_DOWN_JOY_LEFT: /* 摇杆LEFT键按下 */
;;;414 case KEY_DOWN_JOY_RIGHT: /* 摇杆RIGHT键按下 */
000040 bf00 NOP
;;;415 case KEY_DOWN_WAKEUP:
000042 bf00 NOP
;;;416 case KEY_DOWN_USER:
000044 bf00 NOP
;;;417 case KEY_DOWN_JOY_OK: /* 摇杆OK键 */
000046 bf00 NOP
;;;418 /* 退出,进入全速运行状态 */
;;;419 *pMainStatus = S_RUN;
000048 2001 MOVS r0,#1
00004a 7020 STRB r0,[r4,#0]
;;;420 break;
00004c e013 B |L10.118|
;;;421
;;;422 case KEY_DOWN_JOY_UP: /* 摇杆UP键按下 */
;;;423 bright += BRIGHT_STEP;
00004e 1d70 ADDS r0,r6,#5
000050 b286 UXTH r6,r0
;;;424 if (bright > BRIGHT_MAX)
000052 2eff CMP r6,#0xff
000054 dd00 BLE |L10.88|
;;;425 {
;;;426 bright = BRIGHT_MAX;
000056 26ff MOVS r6,#0xff
|L10.88|
;;;427 }
;;;428 SetBackLight(bright);
000058 b2f0 UXTB r0,r6
00005a f7fffffe BL SetBackLight
;;;429 break;
00005e e00a B |L10.118|
;;;430
;;;431 case KEY_DOWN_JOY_DOWN: /* 摇杆DOWN键按下 */
;;;432 if (bright < BRIGHT_STEP)
000060 2e05 CMP r6,#5
000062 da01 BGE |L10.104|
;;;433 {
;;;434 bright = 0;
000064 2600 MOVS r6,#0
000066 e001 B |L10.108|
|L10.104|
;;;435 }
;;;436 else
;;;437 {
;;;438 bright -= BRIGHT_STEP;
000068 1f70 SUBS r0,r6,#5
00006a b286 UXTH r6,r0
|L10.108|
;;;439 }
;;;440 SetBackLight(bright);
00006c b2f0 UXTB r0,r6
00006e f7fffffe BL SetBackLight
;;;441 break;
000072 e000 B |L10.118|
|L10.116|
;;;442
;;;443 default:
;;;444 break;
000074 bf00 NOP
|L10.118|
000076 bf00 NOP ;420
|L10.120|
000078 7820 LDRB r0,[r4,#0] ;392
00007a 2800 CMP r0,#0 ;392
00007c d0ca BEQ |L10.20|
;;;445 }
;;;446 }
;;;447 }
;;;448 }
00007e e8bd81f0 POP {r4-r8,pc}
;;;449
ENDP
AREA ||i.DsoMain||, CODE, READONLY, ALIGN=1
DsoMain PROC
;;;92 */
;;;93 void DsoMain(void)
000000 b508 PUSH {r3,lr}
;;;94 {
;;;95 uint8_t MainStatus = S_RUN; /* 程序执行状态 */
000002 2001 MOVS r0,#1
000004 9000 STR r0,[sp,#0]
;;;96
;;;97 InitWaveMaker();
000006 f7fffffe BL InitWaveMaker
;;;98 // SetupWaveType(WT_SIN); /* 设置正弦波 */
;;;99
;;;100 LCD_Init(); /* 显示器初始化 */
00000a f7fffffe BL LCD_Init
;;;101
;;;102 SetBackLight(BRIGHT_DEFAULT); /* 设置背光亮度 */
00000e 20c8 MOVS r0,#0xc8
000010 f7fffffe BL SetBackLight
;;;103
;;;104 /* 进入主程序循环体 */
;;;105 while (1)
000014 e00f B |L11.54|
|L11.22|
;;;106 {
;;;107 switch (MainStatus)
000016 f89d0000 LDRB r0,[sp,#0]
00001a b110 CBZ r0,|L11.34|
00001c 2801 CMP r0,#1
00001e d108 BNE |L11.50|
000020 e003 B |L11.42|
|L11.34|
;;;108 {
;;;109 case S_HELP:
;;;110 DsoHelp(&MainStatus); /* 显示帮助 */
000022 4668 MOV r0,sp
000024 f7fffffe BL DsoHelp
;;;111 break;
000028 e004 B |L11.52|
|L11.42|
;;;112
;;;113 case S_RUN:
;;;114 DsoRun(&MainStatus); /* 全速采集,实时显示 */
00002a 4668 MOV r0,sp
00002c f7fffffe BL DsoRun
;;;115 break;
000030 e000 B |L11.52|
|L11.50|
;;;116
;;;117 default:
;;;118 break;
000032 bf00 NOP
|L11.52|
000034 bf00 NOP ;111
|L11.54|
000036 e7ee B |L11.22|
;;;119 }
;;;120 }
;;;121 }
;;;122
ENDP
AREA ||i.DsoRun||, CODE, READONLY, ALIGN=2
DsoRun PROC
;;;1039 */
;;;1040 static void DsoRun(uint8_t *pMainStatus)
000000 b570 PUSH {r4-r6,lr}
;;;1041 {
000002 4604 MOV r4,r0
;;;1042 uint8_t KeyCode;
;;;1043 uint8_t fRefresh = 1; /* LCD刷新标志 */
000004 2601 MOVS r6,#1
;;;1044
;;;1045 InitDsoParam(); /* 初始化示波器参数 */
000006 f7fffffe BL InitDsoParam
;;;1046
;;;1047 InitDSO(); /* 配置示波器用到的外设:ADC,TIM,DMA等 */
00000a f7fffffe BL InitDSO
;;;1048
;;;1049 LCD_Clear(Blue); /* 清屏,背景蓝色 */
00000e 201f MOVS r0,#0x1f
000010 f7fffffe BL LCD_Clear
;;;1050 LCD_SetBackColor(Blue); /* 设置文字背景颜色 */
000014 201f MOVS r0,#0x1f
000016 f7fffffe BL LCD_SetBackColor
;;;1051
;;;1052 LCD_SetTextColor(White); /* 设置文字颜色 */
00001a f64f70ff MOV r0,#0xffff
00001e f7fffffe BL LCD_SetTextColor
;;;1053
;;;1054 StartTimer(1, 150); /* 启动定时器1,100ms刷新1次 */
000022 2196 MOVS r1,#0x96
000024 2001 MOVS r0,#1
000026 f7fffffe BL StartTimer
|L12.42|
;;;1055 while (*pMainStatus == S_RUN)
00002a e0c0 B |L12.430|
|L12.44|
;;;1056 {
;;;1057 CPU_IDLE();
;;;1058
;;;1059 if (fRefresh)
00002c b13e CBZ r6,|L12.62|
;;;1060 {
;;;1061 fRefresh = 0;
00002e 2600 MOVS r6,#0
;;;1062
;;;1063 //StopADC(); /* 暂停采样 */
;;;1064 if (g_DSO.HoldEn == 1)
000030 4861 LDR r0,|L12.440|
000032 f8900391 LDRB r0,[r0,#0x391]
000036 2801 CMP r0,#1
000038 d101 BNE |L12.62|
;;;1065 {
;;;1066 DispDSO();
00003a f7fffffe BL DispDSO
|L12.62|
;;;1067 }
;;;1068 //StartADC(); /* 开始采样 */
;;;1069 }
;;;1070
;;;1071 if (CheckTimer(1))
00003e 2001 MOVS r0,#1
000040 f7fffffe BL CheckTimer
000044 b168 CBZ r0,|L12.98|
;;;1072 {
;;;1073 StartTimer(1, 150); /* 启动定时器1,100ms刷新1次 */
000046 2196 MOVS r1,#0x96
000048 2001 MOVS r0,#1
00004a f7fffffe BL StartTimer
;;;1074
;;;1075 /* 运行状态。每隔100ms刷新1次波形 */
;;;1076 if (g_DSO.HoldEn == 0)
00004e 485a LDR r0,|L12.440|
000050 f8900391 LDRB r0,[r0,#0x391]
000054 b928 CBNZ r0,|L12.98|
;;;1077 {
;;;1078 StopADC(); /* 暂停采样 */
000056 f7fffffe BL StopADC
;;;1079 DispDSO();
00005a f7fffffe BL DispDSO
;;;1080 StartADC(); /* 开始采样 */
00005e f7fffffe BL StartADC
|L12.98|
;;;1081 }
;;;1082 }
;;;1083
;;;1084 /* 读
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -