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

📄 main.txt

📁 一个电力系统谐波检测的程序
💻 TXT
📖 第 1 页 / 共 4 页
字号:
;;;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 + -