📄 main.txt
字号:
;;;353 pdata = pdata;
0002b0 e1a00000 MOV r0,r0
;;;354 while(1)
0002b4 ea000009 B |L1.736|
;;;355 {
;;;356
;;;357 AD_START();
|L1.696|
0002b8 ebfffffe BL AD_START
;;;358 //OSMboxPost(KeyMbox, (void *)(temp%5)); // 发送按键消息
;;;359 temp++;
0002bc e2844001 ADD r4,r4,#1
;;;360 SSP_SEND_LED(temp%16);
0002c0 e1a05004 MOV r5,r4
0002c4 e1a01fc4 ASR r1,r4,#31
0002c8 e0841e21 ADD r1,r4,r1,LSR #28
0002cc e1a01241 ASR r1,r1,#4
0002d0 e0440201 SUB r0,r4,r1,LSL #4
0002d4 ebfffffe BL SSP_SEND_LED
;;;361 OSTimeDly(150);
0002d8 e3a00096 MOV r0,#0x96
0002dc ebfffffe BL OSTimeDly
|L1.736|
0002e0 eafffff4 B |L1.696| ;354
;;;362 }
;;;363 }
ENDP
Task1 PROC
;;;382 void Task1(void *pdata)
;;;383 {
0002e4 e92d407c PUSH {r2-r6,lr}
0002e8 e1a05000 MOV r5,r0
;;;384
;;;385 uint8 k=0,GPIO_DATA[3];
0002ec e3a04000 MOV r4,#0
;;;386 uint8 RS485_RECV[2];
;;;387 pdata = pdata;
0002f0 e1a00000 MOV r0,r0
;;;388 memset(GPIO_DATA,0,sizeof(GPIO_DATA)) ;
0002f4 e3a00000 MOV r0,#0
0002f8 e58d0004 STR r0,[sp,#4]
;;;389 while(1)
0002fc ea000013 B |L1.848|
;;;390 {
;;;391
;;;392 IO1SET =(1<<25);
|L1.768|
000300 e3a00402 MOV r0,#0x2000000
000304 e59f1228 LDR r1,|L1.1332|
000308 e5810014 STR r0,[r1,#0x14]
;;;393 IO1SET =(1<<23);
00030c e3a00502 MOV r0,#0x800000
000310 e5810014 STR r0,[r1,#0x14]
;;;394 GPIO_DATA[k++]=SSP_READ_GPIO() ;
000314 ebfffffe BL SSP_READ_GPIO
000318 e20010ff AND r1,r0,#0xff
00031c e1a00004 MOV r0,r4
000320 e2842001 ADD r2,r4,#1
000324 e20240ff AND r4,r2,#0xff
000328 e28d2004 ADD r2,sp,#4
00032c e7c21000 STRB r1,[r2,r0]
;;;395 if(k>2) k=0;
000330 e3540002 CMP r4,#2
000334 da000000 BLE |L1.828|
000338 e3a04000 MOV r4,#0
;;;396 UART1_GetStr(RS485_RECV,3);
|L1.828|
00033c e3a01003 MOV r1,#3
000340 e1a0000d MOV r0,sp
000344 ebfffffe BL UART1_GetStr
;;;397 OSTimeDly(200);
000348 e3a000c8 MOV r0,#0xc8
00034c ebfffffe BL OSTimeDly
|L1.848|
000350 eaffffea B |L1.768| ;389
;;;398 }
;;;399 }
ENDP
DrawSelectMenuIco PROC
;;;89 void DrawSelectMenuIco(uint8 start, uint8 select, uint8 disp_all)
;;;90 { static uint8 s_start_no = 255;
000354 e92d4070 PUSH {r4-r6,lr}
000358 e1a04000 MOV r4,r0
00035c e1a05001 MOV r5,r1
000360 e1a06002 MOV r6,r2
;;;91 static uint8 s_select_old = 255;
;;;92
;;;93
;;;94 /* 判断是否要全部更新 */
;;;95 if( (s_start_no != start) ||
000364 e59f01cc LDR r0,|L1.1336|
000368 e5d00000 LDRB r0,[r0,#0] ; s_start_no@DrawSelectMenuIco_0
00036c e1500004 CMP r0,r4
000370 1a000001 BNE |L1.892|
;;;96 (disp_all != 0) ) // 需全部更新
000374 e3560000 CMP r6,#0
000378 0a000049 BEQ |L1.1188|
;;;97 { s_start_no = start;
|L1.892|
00037c e59f01b4 LDR r0,|L1.1336|
000380 e5c04000 STRB r4,[r0,#0] ; s_start_no@DrawSelectMenuIco_0
;;;98 s_select_old = select;
000384 e2800001 ADD r0,r0,#1
000388 e5c05000 STRB r5,[r0,#0] ; s_select_old@DrawSelectMenuIco_1
;;;99
;;;100 /* 设置图标显示位置 */
;;;101 mainmenu[start].x = ICO1_X;
00038c e3a00007 MOV r0,#7
000390 e0841084 ADD r1,r4,r4,LSL #1
000394 e59f21a0 LDR r2,|L1.1340|
000398 e7820181 STR r0,[r2,r1,LSL #3]
;;;102 mainmenu[start].y = ICO1_Y;
00039c e3a0000e MOV r0,#0xe
0003a0 e0841084 ADD r1,r4,r4,LSL #1
0003a4 e0821181 ADD r1,r2,r1,LSL #3
0003a8 e5810004 STR r0,[r1,#4]
;;;103 mainmenu[start+1].x = ICO2_X;
0003ac e3a0001b MOV r0,#0x1b
0003b0 e2841001 ADD r1,r4,#1
0003b4 e0811081 ADD r1,r1,r1,LSL #1
0003b8 e7820181 STR r0,[r2,r1,LSL #3]
;;;104 mainmenu[start+1].y = ICO2_Y;
0003bc e3a0000e MOV r0,#0xe
0003c0 e2841001 ADD r1,r4,#1
0003c4 e0811081 ADD r1,r1,r1,LSL #1
0003c8 e0821181 ADD r1,r2,r1,LSL #3
0003cc e5810004 STR r0,[r1,#4]
;;;105 mainmenu[start+2].x = ICO3_X;
0003d0 e3a0002f MOV r0,#0x2f
0003d4 e2841002 ADD r1,r4,#2
0003d8 e0811081 ADD r1,r1,r1,LSL #1
0003dc e7820181 STR r0,[r2,r1,LSL #3]
;;;106 mainmenu[start+2].y = ICO3_Y;
0003e0 e3a0000e MOV r0,#0xe
0003e4 e2841002 ADD r1,r4,#2
0003e8 e0811081 ADD r1,r1,r1,LSL #1
0003ec e0821181 ADD r1,r2,r1,LSL #3
0003f0 e5810004 STR r0,[r1,#4]
;;;107
;;;108 /* 设置选择的图标,然后显图标 */
;;;109 mainmenu[start].state = 0;
0003f4 e3a00000 MOV r0,#0
0003f8 e0841084 ADD r1,r4,r4,LSL #1
0003fc e0821181 ADD r1,r2,r1,LSL #3
000400 e5c10010 STRB r0,[r1,#0x10]
;;;110 mainmenu[start+1].state = 0;
000404 e2841001 ADD r1,r4,#1
000408 e0811081 ADD r1,r1,r1,LSL #1
00040c e0821181 ADD r1,r2,r1,LSL #3
000410 e5c10010 STRB r0,[r1,#0x10]
;;;111 mainmenu[start+2].state = 0;
000414 e2841002 ADD r1,r4,#2
000418 e0811081 ADD r1,r1,r1,LSL #1
00041c e0821181 ADD r1,r2,r1,LSL #3
000420 e5c10010 STRB r0,[r1,#0x10]
;;;112 /* 显示图标的标题栏 */
;;;113 mainmenu[start].title = "A";
000424 e28f0f45 ADR r0,|L1.1344|
000428 e0841084 ADD r1,r4,r4,LSL #1
00042c e0821181 ADD r1,r2,r1,LSL #3
000430 e581000c STR r0,[r1,#0xc]
;;;114 mainmenu[start+1].title = "B";
000434 e28f0f42 ADR r0,|L1.1348|
000438 e2841001 ADD r1,r4,#1
00043c e0811081 ADD r1,r1,r1,LSL #1
000440 e0821181 ADD r1,r2,r1,LSL #3
000444 e581000c STR r0,[r1,#0xc]
;;;115 mainmenu[start+2].title = "C";
000448 e28f00f8 ADR r0,|L1.1352|
00044c e2841002 ADD r1,r4,#2
000450 e0811081 ADD r1,r1,r1,LSL #1
000454 e0821181 ADD r1,r2,r1,LSL #3
000458 e581000c STR r0,[r1,#0xc]
;;;116
;;;117 mainmenu[select].state = 1; //选中的菜单进行反色显示
00045c e3a00001 MOV r0,#1
000460 e0851085 ADD r1,r5,r5,LSL #1
000464 e0821181 ADD r1,r2,r1,LSL #3
000468 e5c10010 STRB r0,[r1,#0x10]
;;;118 GUI_MenuIcoDraw(&mainmenu[start]);
00046c e0841084 ADD r1,r4,r4,LSL #1
000470 e0820181 ADD r0,r2,r1,LSL #3
000474 ebfffffe BL GUI_MenuIcoDraw
;;;119 GUI_MenuIcoDraw(&mainmenu[start+1]);
000478 e2841001 ADD r1,r4,#1
00047c e0811081 ADD r1,r1,r1,LSL #1
000480 e59f20b4 LDR r2,|L1.1340|
000484 e0820181 ADD r0,r2,r1,LSL #3
000488 ebfffffe BL GUI_MenuIcoDraw
;;;120 GUI_MenuIcoDraw(&mainmenu[start+2]);
00048c e2841002 ADD r1,r4,#2
000490 e0811081 ADD r1,r1,r1,LSL #1
000494 e59f20a0 LDR r2,|L1.1340|
000498 e0820181 ADD r0,r2,r1,LSL #3
00049c ebfffffe BL GUI_MenuIcoDraw
0004a0 ea000019 B |L1.1292|
;;;121 }
;;;122 else // 只需更新选择
;;;123 { /* 清除旧的选择 */
;;;124 if(s_select_old<8)
|L1.1188|
0004a4 e59f00a0 LDR r0,|L1.1356|
0004a8 e5d00000 LDRB r0,[r0,#0] ; s_select_old@DrawSelectMenuIco_1
0004ac e3500008 CMP r0,#8
0004b0 aa00000b BGE |L1.1252|
;;;125 { mainmenu[s_select_old].state = 0;
0004b4 e3a00000 MOV r0,#0
0004b8 e59f108c LDR r1,|L1.1356|
0004bc e5d11000 LDRB r1,[r1,#0] ; s_select_old@DrawSelectMenuIco_1
0004c0 e0811081 ADD r1,r1,r1,LSL #1
0004c4 e59f2070 LDR r2,|L1.1340|
0004c8 e0821181 ADD r1,r2,r1,LSL #3
0004cc e5c10010 STRB r0,[r1,#0x10]
;;;126 GUI_MenuIcoDraw(&mainmenu[s_select_old]);
0004d0 e59f1074 LDR r1,|L1.1356|
0004d4 e5d11000 LDRB r1,[r1,#0] ; s_select_old@DrawSelectMenuIco_1
0004d8 e0811081 ADD r1,r1,r1,LSL #1
0004dc e0820181 ADD r0,r2,r1,LSL #3
0004e0 ebfffffe BL GUI_MenuIcoDraw
;;;127 }
;;;128
;;;129 /* 设置新的选择 */
;;;130 mainmenu[select].state = 1;
|L1.1252|
0004e4 e3a00001 MOV r0,#1
0004e8 e0851085 ADD r1,r5,r5,LSL #1
0004ec e59f2048 LDR r2,|L1.1340|
0004f0 e0821181 ADD r1,r2,r1,LSL #3
0004f4 e5c10010 STRB r0,[r1,#0x10]
;;;131 GUI_MenuIcoDraw(&mainmenu[select]);
0004f8 e0851085 ADD r1,r5,r5,LSL #1
0004fc e0820181 ADD r0,r2,r1,LSL #3
000500 ebfffffe BL GUI_MenuIcoDraw
;;;132 s_select_old = select;
000504 e59f0040 LDR r0,|L1.1356|
000508 e5c05000 STRB r5,[r0,#0] ; s_select_old@DrawSelectMenuIco_1
;;;133 }
;;;134 }
|L1.1292|
00050c e8bd4070 POP {r4-r6,lr}
000510 e12fff1e BX lr
|L1.1300|
000514 000007d7 DCD 0x000007d7
|L1.1304|
000518 65746144 DCB "Date"
00051c 3a736920 DCB " is:"
000520 00000000 DCB "\0\0\0\0"
|L1.1316|
000524 656d6954 DCB "Time"
000528 3a736920 DCB " is:"
00052c 00000000 DCB "\0\0\0\0"
|L1.1328|
000530 00613231 DCB "12a\0"
|L1.1332|
000534 e0028000 DCD 0xe0028000
|L1.1336|
000538 00000004 DCD ||.data|| + 4
|L1.1340|
00053c 00000000 DCD mainmenu
|L1.1344|
000540 00000041 DCB "A\0\0\0"
|L1.1348|
000544 00000042 DCB "B\0\0\0"
|L1.1352|
000548 00000043 DCB "C\0\0\0"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -