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

📄 main.txt

📁 工厂环境污染控制数据采集器
💻 TXT
📖 第 1 页 / 共 5 页
字号:
;;;769        return;
;;;770    }
000be0  e12fff1e          BX       lr
;;;771    
                          ENDP

                  reset_timer PROC
;;;784    
;;;785        if ( timer_num == 0 )
000be4  e3500000          CMP      r0,#0
000be8  1a000004          BNE      |L1.3072|
;;;786        {
;;;787    		regVal = T0TCR;
000bec  e59f229c          LDR      r2,|L1.3728|
000bf0  e5921004          LDR      r1,[r2,#4]
;;;788    		regVal |= 0x02;
000bf4  e3811002          ORR      r1,r1,#2
;;;789    		T0TCR = regVal;
000bf8  e5821004          STR      r1,[r2,#4]
000bfc  ea000003          B        |L1.3088|
                  |L1.3072|
;;;790        }
;;;791        else
;;;792        {
;;;793    		regVal = T1TCR;
000c00  e59f22b4          LDR      r2,|L1.3772|
000c04  e5921004          LDR      r1,[r2,#4]
;;;794    		regVal |= 0x02;
000c08  e3811002          ORR      r1,r1,#2
;;;795    		T1TCR = regVal;
000c0c  e5821004          STR      r1,[r2,#4]
                  |L1.3088|
;;;796        }
;;;797        return;
;;;798    }
000c10  e12fff1e          BX       lr
;;;799    
                          ENDP

                  init_timer PROC
;;;811    DWORD init_timer( DWORD TimerInterval ) 
;;;812    {
000c14  e92d4010          PUSH     {r4,lr}
000c18  e1a04000          MOV      r4,r0
;;;813        timer_counter = 0;
000c1c  e3a00000          MOV      r0,#0
000c20  e59f126c          LDR      r1,|L1.3732|
000c24  e5810000          STR      r0,[r1,#0]  ; timer_counter
;;;814        T0MR0 = TimerInterval;
000c28  e59f0260          LDR      r0,|L1.3728|
000c2c  e5804018          STR      r4,[r0,#0x18]
;;;815        T0MCR = 3;				/* Interrupt and Reset on MR0 */
000c30  e3a00003          MOV      r0,#3
000c34  e59f1254          LDR      r1,|L1.3728|
000c38  e5810014          STR      r0,[r1,#0x14]
;;;816        //if ( install_irq( TIMER0_INT, (void *)Timer0Handler, HIGHEST_PRIORITY ) == FALSE )
;;;817        if ( install_irq( TIMER0_INT, (void *)Timer0Handler, 2 ) == FALSE )
000c3c  e3a02002          MOV      r2,#2
000c40  e24f1f72          ADR      r1,Timer0Handler
000c44  e3a00004          MOV      r0,#4
000c48  ebfffffe          BL       install_irq
000c4c  e3500000          CMP      r0,#0
000c50  1a000002          BNE      |L1.3168|
;;;818        {
;;;819    			return (FALSE);
000c54  e3a00000          MOV      r0,#0
                  |L1.3160|
000c58  e8bd4010          POP      {r4,lr}
;;;820        }
;;;821        else
;;;822        {
;;;823    			return (TRUE);
;;;824        }
;;;825       //return (TRUE);
;;;826    }
000c5c  e12fff1e          BX       lr
                  |L1.3168|
000c60  e3a00001          MOV      r0,#1                 ;823
000c64  eafffffb          B        |L1.3160|
;;;827    
                          ENDP

                  set_uart0_to_tx_status PROC
;;;830    {
;;;831    	FIO4SET=(uint32)0x01<<29;
000c68  e3a00202          MOV      r0,#0x20000000
000c6c  e59f11cc          LDR      r1,|L1.3648|
000c70  e5810098          STR      r0,[r1,#0x98]
;;;832    }
000c74  e12fff1e          BX       lr
;;;833    
                          ENDP

                  set_uart0_to_rx_status PROC
;;;835    {
;;;836    	FIO4CLR=(uint32)0x01<<29;
000c78  e3a00202          MOV      r0,#0x20000000
000c7c  e59f11bc          LDR      r1,|L1.3648|
000c80  e581009c          STR      r0,[r1,#0x9c]
;;;837    }
000c84  e12fff1e          BX       lr
;;;838    
                          ENDP

                  set_uart1_to_tx_status PROC
;;;842    {
;;;843    	FIO4SET=(uint32)0x01<<28;
000c88  e3a00201          MOV      r0,#0x10000000
000c8c  e59f11ac          LDR      r1,|L1.3648|
000c90  e5810098          STR      r0,[r1,#0x98]
;;;844    }
000c94  e12fff1e          BX       lr
;;;845    
                          ENDP

                  set_uart1_to_rx_status PROC
;;;847    {
;;;848    	FIO4CLR=(uint32)0x01<<28;
000c98  e3a00201          MOV      r0,#0x10000000
000c9c  e59f119c          LDR      r1,|L1.3648|
000ca0  e581009c          STR      r0,[r1,#0x9c]
;;;849    }
000ca4  e12fff1e          BX       lr
;;;850    
                          ENDP

                  set_uart2_to_tx_status PROC
;;;853    {
;;;854    	FIO3SET=(uint32)0x01<<26;
000ca8  e3a00301          MOV      r0,#0x4000000
000cac  e59f118c          LDR      r1,|L1.3648|
000cb0  e5810078          STR      r0,[r1,#0x78]
;;;855    }
000cb4  e12fff1e          BX       lr
;;;856    
                          ENDP

                  set_uart2_to_rx_status PROC
;;;858    {
;;;859    	FIO3CLR=(uint32)0x01<<26;
000cb8  e3a00301          MOV      r0,#0x4000000
000cbc  e59f117c          LDR      r1,|L1.3648|
000cc0  e581007c          STR      r0,[r1,#0x7c]
;;;860    }
000cc4  e12fff1e          BX       lr
;;;861    
                          ENDP

                  set_uart3_to_tx_status PROC
;;;865    {
;;;866    	FIO3SET=(uint32)0x01<<25;
000cc8  e3a00402          MOV      r0,#0x2000000
000ccc  e59f116c          LDR      r1,|L1.3648|
000cd0  e5810078          STR      r0,[r1,#0x78]
;;;867    }
000cd4  e12fff1e          BX       lr
;;;868    
                          ENDP

                  set_uart3_to_rx_status PROC
;;;870    {
;;;871    	FIO3CLR=(uint32)0x01<<25;
000cd8  e3a00402          MOV      r0,#0x2000000
000cdc  e59f115c          LDR      r1,|L1.3648|
000ce0  e581007c          STR      r0,[r1,#0x7c]
;;;872    }
000ce4  e12fff1e          BX       lr
;;;873    
                          ENDP

                  SEND_MODBUS_FRAME PROC
;;;881    	
;;;882    }
000ce8  e12fff1e          BX       lr
;;;883    
                          ENDP

                  feed_watchdog PROC
;;;1424   
;;;1425   	if(feed_watchdog_flag1==0)
000cec  e59f01cc          LDR      r0,|L1.3776|
000cf0  e5d00000          LDRB     r0,[r0,#0]  ; feed_watchdog_flag1
000cf4  e3500000          CMP      r0,#0
000cf8  1a000006          BNE      |L1.3352|
;;;1426   	{
;;;1427   		feed_watchdog_flag1=1;
000cfc  e3a00001          MOV      r0,#1
000d00  e59f11b8          LDR      r1,|L1.3776|
000d04  e5c10000          STRB     r0,[r1,#0]  ; feed_watchdog_flag1
;;;1428   		IOSET0=(uint32)0x01<<17;
000d08  e3a00802          MOV      r0,#0x20000
000d0c  e59f1138          LDR      r1,|L1.3660|
000d10  e5810004          STR      r0,[r1,#4]
000d14  ea000005          B        |L1.3376|
                  |L1.3352|
;;;1429   	}
;;;1430   	else
;;;1431   	{
;;;1432   		feed_watchdog_flag1=0;
000d18  e3a00000          MOV      r0,#0
000d1c  e59f119c          LDR      r1,|L1.3776|
000d20  e5c10000          STRB     r0,[r1,#0]  ; feed_watchdog_flag1
;;;1433   		IOCLR0=(uint32)0x01<<17;
000d24  e3a00802          MOV      r0,#0x20000
000d28  e59f111c          LDR      r1,|L1.3660|
000d2c  e581000c          STR      r0,[r1,#0xc]
                  |L1.3376|
;;;1434   	}	
;;;1435   }
000d30  e12fff1e          BX       lr
;;;1436   
                          ENDP

                  Ldelay PROC
;;;884    void Ldelay(unsigned int dly)
;;;885    {
000d34  e52de004          PUSH     {lr}
000d38  e1a03000          MOV      r3,r0
;;;886    	unsigned int i;
;;;887    	
;;;888    	for ( ; dly>0; dly--)
000d3c  ea000007          B        |L1.3424|
                  |L1.3392|
;;;889    		for (i=0; i<50000; i++)
000d40  e3a02000          MOV      r2,#0
000d44  ea000001          B        |L1.3408|
                  |L1.3400|
;;;890    		{
;;;891    			feed_watchdog();
000d48  ebfffffe          BL       feed_watchdog
000d4c  e2822001          ADD      r2,r2,#1              ;889
                  |L1.3408|
000d50  e59f016c          LDR      r0,|L1.3780|
000d54  e1520000          CMP      r2,r0                 ;889
000d58  3afffffa          BCC      |L1.3400|
000d5c  e2433001          SUB      r3,r3,#1              ;888
                  |L1.3424|
000d60  e3530000          CMP      r3,#0                 ;888
000d64  1afffff5          BNE      |L1.3392|
;;;892    		}
;;;893    }
000d68  e49de004          POP      {lr}
000d6c  e12fff1e          BX       lr
;;;894    
                          ENDP

                  delay_xus PROC
;;;907    void delay_xus(unsigned int dly)
;;;908    {
000d70  e52de004          PUSH     {lr}
000d74  e1a02000          MOV      r2,r0
;;;909    	for(;dly>0;dly--)
000d78  ea000002          B        |L1.3464|
                  |L1.3452|
;;;910    	{
;;;911    		delay(200);
000d7c  e3a000c8          MOV      r0,#0xc8
000d80  ebfffffe          BL       delay
000d84  e2422001          SUB      r2,r2,#1              ;909
                  |L1.3464|
000d88  e3520000          CMP      r2,#0                 ;909
000d8c  1afffffa          BNE      |L1.3452|
;;;912    	}
;;;913    }
000d90  e49de004          POP      {lr}
000d94  e12fff1e          BX       lr
;;;914    
                          ENDP

                  delay_xms PROC
;;;916    void delay_xms(unsigned int dly)
;;;917    {
000d98  e52de004          PUSH     {lr}
000d9c  e1a03000          MOV      r3,r0
;;;918    	for(;dly>0;dly--)
000da0  ea000002          B        |L1.3504|
                  |L1.3492|
;;;919    	{
;;;920    		delay_xus(1000);
000da4  e3a00ffa          MOV      r0,#0x3e8
000da8  ebfffffe          BL       delay_xus
000dac  e2433001          SUB      r3,r3,#1              ;918
                  |L1.3504|
000db0  e3530000          CMP      r3,#0                 ;918
000db4  1afffffa          BNE      |L1.3492|
;;;921    	}
;;;922    }
000db8  e49de004          POP      {lr}
000dbc  e12fff1e          BX       lr
;;;923    
                          ENDP

                  i2cstart PROC
;;;968    void i2cstart(void)
;;;969    { 
000dc0  e52de004          PUSH     {lr}
;;;970    	 SDA_OUT;
000dc4  e59f0080          LDR      r0,|L1.3660|
000dc8  e5900008          LDR      r0,[r0,#8]
000dcc  e3800302          ORR      r0,r0,#0x8000000
000dd0  e59f1074          LDR      r1,|L1.3660|
000dd4  e5810008          STR      r0,[r1,#8]
000dd8  e3a00ffa          MOV      r0,#0x3e8
000ddc  ebfffffe          BL       delay
;;;971       SET_SDA; 
000de0  e3a00302          MOV      r0,#0x8000000
000de4  e59f1060          LDR      r1,|L1.3660|
000de8  e5810004          STR      r0,[r1,#4]
000dec  e3a00ffa          MOV      r0,#0x3e8
000df0  ebfffffe          BL       delay
;;;972    	 delay_xus(10); 
000df4  e3a0000a          MOV      r0,#0xa
000df8  ebfffffe          BL       delay_xus
;;;973       SET_SCL;  
000dfc  e3a00201          MOV      r0,#0x10000000
000e00  e59f1044          LDR      r1,|L1.3660|
000e04  e5810004          STR      r0,[r1,#4]
000e08  e3a00ffa          MOV      r0,#0x3e8
000e0c  ebfffffe          BL       delay
;;;974       CLR_SDA; 
000e10  e3a00302          MOV      r0,#0x8000000
000e14  e59f1030          LDR      r1,|L1.3660|
000e18  e581000c          STR      r0,[r1,#0xc]
000e1c  e3a00ffa          MOV      r0,#0x3e8
000e20  ebfffffe          BL       delay
;;;975       CLR_SCL;
000e24  e3a00201          MOV      r0,#0x10000000
000e28  e59f101c          LDR      r1,|L1.3660|
000e2c  e581000c          STR      r0,[r1,#0xc]
000e30  e3a00ffa          MOV      r0,#0x3e8
000e34  ebfffffe          BL       delay
;;;976    }
000e38  e49de004          POP      {lr}
000e3c  e12fff1e          BX       lr
                  |L1.3648|
000e40  3fffc000          DCD      0x3fffc000
                  |L1.3652|
000e44  00000000          DCD      key_debounce_flag
                  |L1.3656|
000e48  00000000          DCD      KEY_CODE
                  |L1.3660|
000e4c  e0028000          DCD      0xe0028000
                  |L1.3664|
000e50  00000000          DCD      read_ad_channel_selector
                  |L1.3668|
000e54  00000000          DCD      TEMP_CHANNEL_1_AD_VALUE
                  |L1.3672|
000e58  00000000          DCD      TEMP_CHANNEL_2_AD_VALUE
                  |L1.3676|
000e5c  00000000          DCD      TEMP_CHANNEL_3_AD_VALUE
                  |L1.3680|
000e60  00000000          DCD      TEMP_CHANNEL_4_AD_VALUE
                  |L1.3684|
000e64  00000000          DCD      TEMP_CHANNEL_5_AD_VA

⌨️ 快捷键说明

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