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

📄 main.txt

📁 一个电力系统谐波检测的程序
💻 TXT
📖 第 1 页 / 共 4 页
字号:
00077c  e28d2018          ADD      r2,sp,#0x18
000780  e3a01000          MOV      r1,#0
000784  e59f01a8          LDR      r0,|L1.2356|
000788  e5900000          LDR      r0,[r0,#0]  ; KeyMbox
00078c  ebfffffe          BL       OSMboxPend
000790  e1a04000          MOV      r4,r0
;;;242               
;;;243          if( ((int)key==KEY_LEFT)||
000794  e3540001          CMP      r4,#1
000798  0a000001          BEQ      |L1.1956|
;;;244              ((int)key==KEY_RIGHT) ) 
00079c  e3540002          CMP      r4,#2
0007a0  1a000001          BNE      |L1.1964|
;;;245          { select = 1- select;
                  |L1.1956|
0007a4  e2650001          RSB      r0,r5,#1
0007a8  e20050ff          AND      r5,r0,#0xff
;;;246          }
;;;247          
;;;248          if((int)key==KEY_OK)
                  |L1.1964|
0007ac  e3540004          CMP      r4,#4
0007b0  1a000004          BNE      |L1.1992|
;;;249          {  GUI_WindowsHide(&message); // 清除窗口显示
0007b4  e1a0000d          MOV      r0,sp
0007b8  ebfffffe          BL       GUI_WindowsHide
;;;250             return;
;;;251          }
;;;252    	    OSTimeDly(10);	
;;;253       }   
;;;254    }
0007bc  e28dd01c          ADD      sp,sp,#0x1c
0007c0  e8bd4030          POP      {r4,r5,lr}
0007c4  e12fff1e          BX       lr
                  |L1.1992|
0007c8  e3a0000a          MOV      r0,#0xa               ;252
0007cc  ebfffffe          BL       OSTimeDly             ;252
                  |L1.2000|
0007d0  eaffffda          B        |L1.1856|             ;229
                          ENDP

                  MenuIcoInit PROC
;;;267            
;;;268        for(i=0; i<8; i++)
0007d4  e3a00000          MOV      r0,#0
0007d8  ea000014          B        |L1.2096|
;;;269        {   /* 初始化为末选中状态 */
;;;270            mainmenu[i].state = 0;	
                  |L1.2012|
0007dc  e3a01000          MOV      r1,#0
0007e0  e0802080          ADD      r2,r0,r0,LSL #1
0007e4  e51f32b0          LDR      r3,|L1.1340|
0007e8  e0832182          ADD      r2,r3,r2,LSL #3
0007ec  e5c21010          STRB     r1,[r2,#0x10]
;;;271            
;;;272            /* 连接相应的图标数据 */
;;;273            mainmenu[i].icodat = (uint8 *) pic_all[i][0];
0007f0  e59f1154          LDR      r1,|L1.2380|
0007f4  e7911180          LDR      r1,[r1,r0,LSL #3]
0007f8  e0802080          ADD      r2,r0,r0,LSL #1
0007fc  e0832182          ADD      r2,r3,r2,LSL #3
000800  e5821008          STR      r1,[r2,#8]
;;;274            mainmenu[i].title = (uint8 *) pic_all[i][1];
000804  e59f1140          LDR      r1,|L1.2380|
000808  e0811180          ADD      r1,r1,r0,LSL #3
00080c  e5911004          LDR      r1,[r1,#4]
000810  e0802080          ADD      r2,r0,r0,LSL #1
000814  e0832182          ADD      r2,r3,r2,LSL #3
000818  e582100c          STR      r1,[r2,#0xc]
;;;275            
;;;276            /* 连接菜单功能函数 */
;;;277            mainmenu[i].Function = ( void(*) (void) ) DemoMessage;
00081c  e24f1f4a          ADR      r1,|L1.1788|
000820  e0802080          ADD      r2,r0,r0,LSL #1
000824  e0832182          ADD      r2,r3,r2,LSL #3
000828  e5821014          STR      r1,[r2,#0x14]
00082c  e2800001          ADD      r0,r0,#1              ;268
                  |L1.2096|
000830  e3500008          CMP      r0,#8                 ;268
000834  baffffe8          BLT      |L1.2012|             ;268
;;;278        }
;;;279    }
000838  e12fff1e          BX       lr
                          ENDP

                  Task0 PROC
;;;309    void  Task0(void *pdata)
;;;310    { 
                  |L1.2108|
00083c  e92d4070          PUSH     {r4-r6,lr}
000840  e1a05000          MOV      r5,r0
;;;311      uint8  select;
;;;312    	pdata = pdata;
000844  e1a00000          MOV      r0,r0
;;;313    	TargetInit ();
000848  ebfffffe          BL       TargetInit
;;;314     
;;;315    	    
;;;316        /* 初始化ZLG/GUI */
;;;317        GUI_Initialize();
00084c  ebfffffe          BL       GUI_Initialize
;;;318        GUI_SetColor(1, 0)                             ;
000850  e3a01000          MOV      r1,#0
000854  e3a00001          MOV      r0,#1
000858  ebfffffe          BL       GUI_SetColor
;;;319    
;;;320        /* 图标菜单初始化 */
;;;321         MenuIcoInit();
00085c  ebfffffe          BL       MenuIcoInit
;;;322        
;;;323        /* 显示窗口 */
;;;324        DrawMainWindow();
000860  ebfffffe          BL       DrawMainWindow
;;;325        
;;;326        /* 循环调用图标菜单操作,并执行相应功能 */
;;;327         while(1)
000864  ea00000b          B        |L1.2200|
;;;328         { select = SelectMenuIco();   // 选择菜单
                  |L1.2152|
000868  ebfffffe          BL       SelectMenuIco
00086c  e1a04000          MOV      r4,r0
;;;329        
;;;330           if(select<8) 
000870  e3540008          CMP      r4,#8
000874  aa000005          BGE      |L1.2192|
;;;331           {    (*mainmenu[select].Function)();     // 执行功能
000878  e0841084          ADD      r1,r4,r4,LSL #1
00087c  e51f2348          LDR      r2,|L1.1340|
000880  e0821181          ADD      r1,r2,r1,LSL #3
000884  e5910014          LDR      r0,[r1,#0x14]
000888  e1a0e00f          MOV      lr,pc
00088c  e12fff10          BX       r0
;;;332           }
;;;333             OSTimeDly(1);	
                  |L1.2192|
000890  e3a00001          MOV      r0,#1
000894  ebfffffe          BL       OSTimeDly
                  |L1.2200|
000898  eafffff2          B        |L1.2152|             ;327
;;;334    		
;;;335         }
;;;336    
;;;337    
;;;338    }
                          ENDP

                  main PROC
;;;55     int  main(void)
;;;56      {
00089c  e92d4010          PUSH     {r4,lr}
;;;57     	OSInit ();	
0008a0  ebfffffe          BL       OSInit
;;;58     	TargetInit();	
0008a4  ebfffffe          BL       TargetInit
;;;59     																									
;;;60     	OSTaskCreate (Task0,(void *)0,&TaskStk0[TaskStkLengh-1],3);	
0008a8  e3a03003          MOV      r3,#3
0008ac  e59f209c          LDR      r2,|L1.2384|
0008b0  e3a01000          MOV      r1,#0
0008b4  e24f0080          ADR      r0,|L1.2108|
0008b8  ebfffffe          BL       OSTaskCreate
;;;61     	OSTaskCreate (Task1,(void *)0,&TaskStk1[TaskStkLengh-1],6)	;
0008bc  e3a03006          MOV      r3,#6
0008c0  e59f208c          LDR      r2,|L1.2388|
0008c4  e3a01000          MOV      r1,#0
0008c8  e59f0088          LDR      r0,|L1.2392|
0008cc  ebfffffe          BL       OSTaskCreate
;;;62      	OSTaskCreate (Task2,(void *)0,&TaskStk2[TaskStkLengh-1],4) ;
0008d0  e3a03004          MOV      r3,#4
0008d4  e59f2080          LDR      r2,|L1.2396|
0008d8  e3a01000          MOV      r1,#0
0008dc  e59f007c          LDR      r0,|L1.2400|
0008e0  ebfffffe          BL       OSTaskCreate
;;;63     	OSTaskCreate (Task3,(void *)0,&TaskStk3[TaskStkLengh-1],5) ;
0008e4  e3a03005          MOV      r3,#5
0008e8  e59f2074          LDR      r2,|L1.2404|
0008ec  e3a01000          MOV      r1,#0
0008f0  e59f0070          LDR      r0,|L1.2408|
0008f4  ebfffffe          BL       OSTaskCreate
;;;64     	OSTaskCreate (RTC_TASK,(void *)0,&RTC_Stk[TaskStkLengh-1],7) ;
0008f8  e3a03007          MOV      r3,#7
0008fc  e59f2068          LDR      r2,|L1.2412|
000900  e3a01000          MOV      r1,#0
000904  e59f0064          LDR      r0,|L1.2416|
000908  ebfffffe          BL       OSTaskCreate
;;;65     	KeyMbox = OSMboxCreate(NULL);   // 建立一个邮箱,用于传递按键消息
00090c  e3a00000          MOV      r0,#0
000910  ebfffffe          BL       OSMboxCreate
000914  e59f1018          LDR      r1,|L1.2356|
000918  e5810000          STR      r0,[r1,#0]  ; KeyMbox
;;;66     	AD_INIT();
00091c  ebfffffe          BL       AD_INIT
;;;67     	OSStart ();
000920  ebfffffe          BL       OSStart
;;;68     
;;;69     	return 0;															
000924  e3a00000          MOV      r0,#0
000928  e8bd4010          POP      {r4,lr}
;;;70     }
00092c  e12fff1e          BX       lr
                  |L1.2352|
000930  00000007          DCD      ||.data|| + 7
                  |L1.2356|
000934  00000000          DCD      KeyMbox
                  |L1.2360|
000938  00000006          DCD      ||.data|| + 6
                  |L1.2364|
00093c  4c4c4548          DCB      "HELL"
000940  0000004f          DCB      "O\0\0\0"
                  |L1.2372|
000944  6f6d6544          DCB      "Demo"
000948  00000000          DCB      "\0\0\0\0"
                  |L1.2380|
00094c  00000000          DCD      pic_all
                  |L1.2384|
000950  000000fc          DCD      TaskStk0 + 252
                  |L1.2388|
000954  000000fc          DCD      TaskStk1 + 252
                  |L1.2392|
000958  00000000          DCD      Task1
                  |L1.2396|
00095c  000000fc          DCD      TaskStk2 + 252
                  |L1.2400|
000960  00000000          DCD      Task2
                  |L1.2404|
000964  000000fc          DCD      TaskStk3 + 252
                  |L1.2408|
000968  00000000          DCD      Task3
                  |L1.2412|
00096c  000000fc          DCD      RTC_Stk + 252
                  |L1.2416|
000970  00000000          DCD      RTC_TASK
                          ENDP



                          AREA ||.data||, DATA, ALIGN=2

                  KeyMbox
                          DCD      0x00000000
                  ||s_start_no@DrawSelectMenuIco_0||
                          DCB      0xff
                  ||s_select_old@DrawSelectMenuIco_1||
                          DCB      0xff
                  ||s_menu_start@SelectMenuIco_0||
                          DCB      0x00
                  ||s_select@SelectMenuIco_1||
                          DCB      0x00


                          AREA ||.bss.5||, NOINIT, ALIGN=2

                  mainmenu
                          % 192
                  TaskStk0
                          % 256
                  TaskStk1
                          % 256
                  TaskStk2
                          % 256
                  TaskStk3
                          % 256
                  RTC_Stk
                          % 256

⌨️ 快捷键说明

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