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

📄 main.lst

📁 基于陀螺仪原理的惯性导航程序 用于测量量角速度
💻 LST
📖 第 1 页 / 共 4 页
字号:
  304   2              {   
  305   3                  int z_tempangle=0;
  306   3              //  Z_TXD(flag_pri_tim);
  307   3              //  Z_TXD(bigp[flag_pri_tim].instruction);
  308   3                 switch(bigp[flag_pri_tim].instruction)
  309   3                 {
  310   4                      case 2:
  311   4                      {
  312   5                      //  ON_TXD();
  313   5                          z_tempangle=bigp[flag_pri_tim].x[1]<<8;
  314   5                          z_tempangle=z_tempangle+bigp[flag_pri_tim].x[2];
  315   5      
  316   5                          Z_w_value=-z_tempangle/0.00152;                 
  317   5                      }
  318   4                      break;
  319   4                      case 3:
  320   4                      {
  321   5                  //  print_Z_w();
  322   5                          ZERO_V++;
ARM COMPILER V2.53,  main                                                                  22/09/07  23:08:04  PAGE 6   

  323   5                      //  OFF_TXD();
  324   5                      }
  325   4                      break;
  326   4                      case 4:
  327   4                      {
  328   5                          ZERO_V--;
  329   5                      //  OFF_TXD();
  330   5                      }
  331   4                      break;
  332   4                      case 5:
  333   4                      {
  334   5                          demarcate(1);
  335   5                      }
  336   4                      break;
  337   4                 }
  338   3              }
  339   2       /*
  340   2              if(z_flag_newins==1)
  341   2              {  
  342   2                 int z_tempangle=0;
  343   2                 switch(z_instruction)
  344   2                 {
  345   2                      case 2:
  346   2                      {
  347   2                          z_tempangle=z_global_receive_data.dat[0]<<8;
  348   2                          z_tempangle=z_tempangle+z_global_receive_data.dat[1];
  349   2                          Z_w_value=z_tempangle/0.00152;
  350   2                          OFF_TXD();
  351   2                      }
  352   2                      
  353   2                 }
  354   2              
  355   2              }
  356   2      */
  357   2              temp=((int)(Z_w_result));
  358   2              Z_Hbit=temp>>8;
  359   2              Z_Lbit=temp & 0x00ff;
  360   2      
  361   2              z_global_send_bufn[1].head=0x02;
  362   2              z_global_send_bufn[1].dat[0]= Z_Lbit;
  363   2              z_global_send_bufn[1].dat[1]= Z_Hbit;
  364   2      //      z_global_send_buf[1].dat[2]= Z_Sbit;
  365   2      //      z_global_send_buf[1].dat[3]= 0;
  366   2            WatchDog();
  367   2            print_Z_w();  //调试W值
  368   2      //      A_value[0]=read_ADC(0);
  369   2      //    A_value[1]=read_ADC(1);
  370   2      //    OFF_LED42(); 
  371   2            Delay_X_ms(1000);//0.25S       // 调试W时要调整倒1000
  372   2          }
  373   1      }
  374          ///////////////////////////////////////////////////////////////////////////////////////////////
ARM COMPILER V2.53,  main                                                                  22/09/07  23:08:04  PAGE 7   

ASSEMBLY LISTING OF GENERATED OBJECT CODE



*** EXTERNALS:
 EXTERN CODE32 (Timer0Init?A)
 EXTERN CODE32 (Timer3Init?A)
 EXTERN CODE32 (UART_init?A)
 EXTERN CODE32 (cls?A)
 EXTERN CODE32 (ADC_init?A)
 EXTERN CODE32 (read_ADC?A)
 EXTERN CODE32 (Delay_X_ms?A)
 EXTERN CODE32 (print_Z_w?A)
 EXTERN CODE32 (szlb?A)
 EXTERN CODE32 (UART_R_ISR?A)
 EXTERN CODE32 (Z_COMMUNI_INIT?A)
 EXTERN CODE32 (Z_GETYOU?A)
 EXTERN DATA (bigp)
 EXTERN DATA (z_global_send_bufn)
 EXTERN DATA (z_flag_newins)
 EXTERN DATA (flag_pri_tim)
 EXTERN DATA (pdata)
 EXTERN DATA (pmax)
 EXTERN DATA (pmin)
 EXTERN DATA (datas)
 EXTERN CODE32 (?C?SDIV?A)
 EXTERN CODE32 (?C?FCAST?A)
 EXTERN CODE32 (?C?FPNEG?A)
 EXTERN CODE32 (?C?FPMUL?A)
 EXTERN NUMBER (__startup)
 EXTERN CODE32 (?C?FPDIV?A)
 EXTERN CODE32 (?C?CASTF?A)



*** PUBLICS:
 PUBLIC         demarcate?A
 PUBLIC         SysClkInit?A
 PUBLIC         FIQ_Handler?A
 PUBLIC         main
 PUBLIC         AD_value
 PUBLIC         A_value
 PUBLIC         A_S_value
 PUBLIC         Z_w_value
 PUBLIC         Z_w_result
 PUBLIC         temp1
 PUBLIC         count1
 PUBLIC         Z_Hbit
 PUBLIC         Z_Lbit
 PUBLIC         Z_Sbit
 PUBLIC         ZERO_V
 PUBLIC         zus
 PUBLIC         x
 PUBLIC         z_time
 PUBLIC         z_temp
 PUBLIC         z_temp1
 PUBLIC         RealTime



*** DATA SEGMENT '?DT0?main':
 00000000          Z_w_value:
 00000000            DS          4
 00000004          Z_w_result:
 00000004            DS          4
 00000008          ZERO_V:
 00000008           BEGIN_INIT
 00000008  000011AB  DD          0x11AB
 0000000C           END_INIT
 0000000C          x:
 0000000C            DS          4
ARM COMPILER V2.53,  main                                                                  22/09/07  23:08:04  PAGE 8   

 00000010          z_time:
 00000010           BEGIN_INIT
 00000010  00000000  DD          0x0
 00000014           END_INIT
 00000014          z_temp:
 00000014            DS          4
 00000018          z_temp1:
 00000018            DS          4
 0000001C          RealTime:
 0000001C            DS          4
 00000020          AD_value:
 00000020            DS          6
 00000026          A_value:
 00000026            DS          4
 0000002A          A_S_value:
 0000002A            DS          128
 000000AA          count1:
 000000AA           BEGIN_INIT
 000000AA  0000      DW          0x0
 000000AC           END_INIT
 000000AC          temp1:
 000000AC            DS          1
 000000AD          Z_Hbit:
 000000AD            DS          1
 000000AE          Z_Lbit:
 000000AE            DS          1
 000000AF          Z_Sbit:
 000000AF            DS          1
 000000B0          zus:
 000000B0           BEGIN_INIT
 000000B0  00        DB          0x0
 000000B1           END_INIT



*** CODE SEGMENT '?PR?demarcate?A?main':
   46: void demarcate(unsigned char flag_demarcate)
 00000000  E92D40F0  STMDB       R13!,{R4-R7,LR}
 00000004  E1A04000  MOV         R4,R0 ; flag_demarcate
 00000008  ---- Variable 'flag_demarcate' assigned to Register 'R4' ----
   47: {
 00000008            ; SCOPE-START
   48:     unsigned char z_i = 4,z_j = 5;
 00000008  E3A03004  MOV         R3,#0x4
 0000000C  ---- Variable 'z_i' assigned to Register 'R3' ----
 0000000C  E3A02005  MOV         R2,#0x5
 00000010  ---- Variable 'z_j' assigned to Register 'R2' ----
   51:     if(!flag_demarcate)
 00000010  E1A00004  MOV         R0,R4 ; flag_demarcate
 00000014  E1A00C00  MOV         R0,R0,LSL #24 ; flag_demarcate
 00000018  E1A00C20  MOV         R0,R0,LSR #24
 0000001C  E3500000  CMP         R0,#0x0000
 00000020  1A000003  BNE         L_1  ; Targ=0x34
   53:         x = 0;
 00000024  E3A01000  MOV         R1,#0x0
 00000028  E5100000  LDR         R0,=x ; x
 0000002C  E5801000  STR         R1,[R0,#0x0] ; x
   54:     }
 00000030  EA000002  B           L_2  ; Targ=0x40
 00000034          L_1:
   57:         x = 51;
 00000034  E3A01033  MOV         R1,#0x33
 00000038  E5100000  LDR         R0,=x ; x
 0000003C  E5801000  STR         R1,[R0,#0x0] ; x
   58:     }
 00000040          L_2:
   59:     z_temp = 0;
 00000040  E3A01000  MOV         R1,#0x0
ARM COMPILER V2.53,  main                                                                  22/09/07  23:08:04  PAGE 9   

 00000044  E5100000  LDR         R0,=z_temp ; z_temp
 00000048  E5801000  STR         R1,[R0,#0x0] ; z_temp
   60:     zus=0;
 0000004C  E3A01000  MOV         R1,#0x0
 00000050  E5100000  LDR         R0,=zus ; zus
 00000054  E5C01000  STRB        R1,[R0,#0x0] ; zus
   61:     z_time=0;
 00000058  E3A05000  MOV         R5,#0x0
 0000005C  E5100000  LDR         R0,=z_time ; z_time
 00000060  E5805000  STR         R5,[R0,#0x0] ; z_time
   62:     count1=0;
 00000064  E3A05000  MOV         R5,#0x0
 00000068  E5100000  LDR         R0,=count1 ; count1
 0000006C  E1C050B0  STRH        R5,[R0,#0x0] ; count1
   63:     temp1=0;
 00000070  E5100000  LDR         R0,=temp1 ; temp1
 00000074  E5C01000  STRB        R1,[R0,#0x0] ; temp1
   66:         do
 00000078          L_8:
 00000078          L_7:
   68:             if(zus)
 00000078  E5100000  LDR         R0,=zus ; zus
 0000007C  E5D00000  LDRB        R0,[R0,#0x0] ; zus
 00000080  E3500000  CMP         R0,#0x0000
 00000084  0A00000D  BEQ         L_9  ; Targ=0xC0
   70:                 z_temp=z_temp+Z_w_value ;   
 00000088  E5100000  LDR         R0,=Z_w_value ; Z_w_value
 0000008C  E5900000  LDR         R0,[R0,#0x0] ; Z_w_value
 00000090  E5101000  LDR         R1,=z_temp ; z_temp
 00000094  E5911000  LDR         R1,[R1,#0x0] ; z_temp
 00000098  E0811000  ADD         R1,R1,R0
 0000009C  E5100000  LDR         R0,=z_temp ; z_temp
 000000A0  E5801000  STR         R1,[R0,#0x0] ; z_temp
   71:                 z_time++;
 000000A4  E5100000  LDR         R0,=z_time ; z_time
 000000A8  E5901000  LDR         R1,[R0,#0x0] ; z_time
 000000AC  E2811001  ADD         R1,R1,#0x0001
 000000B0  E5801000  STR         R1,[R0,#0x0] ; z_time
   72:                 zus = 0;        
 000000B4  E3A01000  MOV         R1,#0x0
 000000B8  E5100000  LDR         R0,=zus ; zus
 000000BC  E5C01000  STRB        R1,[R0,#0x0] ; zus
   77:         }while(z_time<z_i);
 000000C0          L_9:
 000000C0  E1A00003  MOV         R0,R3 ; z_i
 000000C4  E1A01C00  MOV         R1,R0,LSL #24 ; z_i
 000000C8  E1A01C21  MOV         R1,R1,LSR #24
 000000CC  E5100000  LDR         R0,=z_time ; z_time
 000000D0  E5900000  LDR         R0,[R0,#0x0] ; z_time
 000000D4  E1500001  CMP         R0,R1
 000000D8  3AFFFFE6  BCC         L_7  ; Targ=0x78
   79:         z_temp=z_temp/z_i;
 000000DC  E1A00003  MOV         R0,R3 ; z_i
 000000E0  E1A01C00  MOV         R1,R0,LSL #24 ; z_i
 000000E4  E1A01C21  MOV         R1,R1,LSR #24
 000000E8  E5100000  LDR         R0,=z_temp ; z_temp
 000000EC  E5900000  LDR         R0,[R0,#0x0] ; z_temp
 000000F0  EBFFFFC2  BL          ?C?SDIV?A  ; Targ=0x0 ; ?C?SDIV?A
 000000F4  E1A00001  MOV         R0,R1
 000000F8  E5101000  LDR         R1,=z_temp ; z_temp
 000000FC  E5810000  STR         R0,[R1,#0x0] ; z_temp
   80:         if(x<50)
 00000100  E5100000  LDR         R0,=x ; x
 00000104  E5905000  LDR         R5,[R0,#0x0] ; x
 00000108  E3550032  CMP         R5,#0x0032
 0000010C  2A00000F  BCS         L_12  ; Targ=0x150
ARM COMPILER V2.53,  main                                                                  22/09/07  23:08:04  PAGE 10  

   82:             ZERO_V=ZERO_V-(int)((z_temp1-z_temp)/z_j);
 00000110  E5100000  LDR         R0,=z_temp ; z_temp
 00000114  E5901000  LDR         R1,[R0,#0x0] ; z_temp
 00000118  E5100000  LDR         R0,=z_temp1 ; z_temp1
 0000011C  E5900000  LDR         R0,[R0,#0x0] ; z_temp1
 00000120  E0400001  SUB         R0,R0,R1
 00000124  E1A01002  MOV         R1,R2 ; z_j
 00000128  E1A01C01  MOV         R1,R1,LSL #24 ; z_j
 0000012C  E1A01C21  MOV         R1,R1,LSR #24
 00000130  EBFFFFB2  BL          ?C?SDIV?A  ; Targ=0x0 ; ?C?SDIV?A
 00000134  E1A00001  MOV         R0,R1
 00000138  E5101000  LDR         R1,=ZERO_V ; ZERO_V
 0000013C  E5911000  LDR         R1,[R1,#0x0] ; ZERO_V
 00000140  E0411000  SUB         R1,R1,R0
 00000144  E5100000  LDR         R0,=ZERO_V ; ZERO_V
 00000148  E5801000  STR         R1,[R0,#0x0] ; ZERO_V
   83:         }
 0000014C  EA000011  B           L_13  ; Targ=0x198
 00000150          L_12:
   86:             if((z_temp-30)>z_temp1)
 00000150  E5100000  LDR         R0,=z_temp ; z_temp
 00000154  E5900000  LDR         R0,[R0,#0x0] ; z_temp
 00000158  E240601E  SUB         R6,R0,#0x001E
 0000015C  E5101000  LDR         R1,=z_temp1 ; z_temp1
 00000160  E5911000  LDR         R1,[R1,#0x0] ; z_temp1
 00000164  E1560001  CMP         R6,R1
 00000168  DA000003  BLE         L_14  ; Targ=0x17C
   88:                 ZERO_V++;
 0000016C  E5106000  LDR         R6,=ZERO_V ; ZERO_V
 00000170  E5967000  LDR         R7,[R6,#0x0] ; ZERO_V
 00000174  E2877001  ADD         R7,R7,#0x0001
 00000178  E5867000  STR         R7,[R6,#0x0] ; ZERO_V
   89:             }
 0000017C          L_14:
   90:             if((z_temp+30)<z_temp1)

⌨️ 快捷键说明

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