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

📄 others.lst

📁 基于陀螺仪原理的惯性导航程序 用于测量量角速度
💻 LST
📖 第 1 页 / 共 2 页
字号:
ARM COMPILER V2.53,  others                                                                22/09/07  23:08:05  PAGE 1   


ARM COMPILER V2.53, COMPILATION OF MODULE others
OBJECT MODULE PLACED IN others.OBJ
COMPILER INVOKED BY: D:\Keil\ARM\BIN\CA.exe others.c ARM BROWSE DEBUG TABS(4) 

stmt  level    source

    1          #include "my_type.h"
    2          #include <ADuC7020.H>
    3          #include "UART.H"
    4          #include "LED.H"
    5          #include "ADC.H"
    6          #include "math.H"
    7          ///////////////////////////////////////
    8          extern uint16  AD_value[3];
    9                                     //固定坐标系下位移
   10          extern float   Z_w_result;
   11          extern int ZERO_V;
   12          /////////////////////////////////////////
   13          
   14          /**************************简单的延时函数*****************************/
   15          void Delay_X_ms(uint32 x)
   16          {
   17   1       uint32 i;
   18   1       while(x--)
   19   1        {
   20   2         i=1000;
   21   2         while(i--);
   22   2        }
   23   1      }
   24          /**********************************************************************/
   25          
   26          //////////////////////////////将w角度显示出来/////////////
   27          void print_Z_w(void)
   28          {
   29   1      
   30   1      // uint16 value;
   31   1       int zero;
   32   1       uint32 result;
   33   1       uint8 s_result[14];
   34   1      
   35   1       if(Z_w_result>=0)
   36   1       {prints("+",0);}
   37   1       else{prints("-",0);}
   38   1       zero = ZERO_V;
   39   1       result=(int)((fabs)(Z_w_result*10));
   40   1       s_result[14]=0;                  //将结果转换成字符串
   41   1      
   42   1       s_result[13]='0'+zero%10;
   43   1        zero/=10;
   44   1        s_result[12]='0'+zero%10;
   45   1         zero/=10;
   46   1         s_result[11]='0'+zero%10;
   47   1          zero/=10;
   48   1          s_result[10]='0'+zero%10;
   49   1           s_result[9]='z';
   50   1       s_result[8]=' ';
   51   1       s_result[7]='u';
   52   1       s_result[6]='d';
   53   1       s_result[5]='0'+result%10;
   54   1       result/=10;
   55   1       s_result[4]='.';
   56   1       s_result[3]='0'+result%10;
   57   1       result/=10;
   58   1       s_result[2]='0'+result%10;
   59   1       result/=10;
ARM COMPILER V2.53,  others                                                                22/09/07  23:08:05  PAGE 2   

   60   1       s_result[1]='0'+result%10;
   61   1       result/=10;
   62   1       s_result[0]='0'+result%10;
   63   1            
   64   1       prints(s_result,1);
   65   1      }
   66          //////////////////////////////////////////////////////////////////////////////
   67          
ARM COMPILER V2.53,  others                                                                22/09/07  23:08:05  PAGE 3   

ASSEMBLY LISTING OF GENERATED OBJECT CODE



*** EXTERNALS:
 EXTERN CODE32 (prints?A)
 EXTERN CODE32 (fabs?A)
 EXTERN DATA (Z_w_result)
 EXTERN DATA (ZERO_V)
 EXTERN CODE32 (?C?FPCMP?A)
 EXTERN CODE32 (?C?FPMUL?A)
 EXTERN CODE32 (?C?CASTF?A)
 EXTERN CODE32 (?C?SDIV?A)
 EXTERN CODE32 (?C?UDIV?A)



*** PUBLICS:
 PUBLIC         Delay_X_ms?A
 PUBLIC         print_Z_w?A



*** DATA SEGMENT '?CON?others':
 00000000          ??S_2:
 00000000            DB          '-',0x00
 00000002          ??S_1:
 00000002            DB          '+',0x00

*** CODE SEGMENT '?PR?Delay_X_ms?A?others':
   15: void Delay_X_ms(uint32 x)
 00000000  ---- Variable 'x' assigned to Register 'R0' ----
   16: {
 00000000            ; SCOPE-START
   18:  while(x--)
 00000000  EA000004  B           L_1  ; Targ=0x18
 00000004          L_3:
   20:    i=1000;
 00000004  E3A01FFA  MOV         R1,#0x3E8
 00000008  ---- Variable 'i' assigned to Register 'R1' ----
   21:    while(i--);
 00000008          L_5:
 00000008  E1A02001  MOV         R2,R1 ; i
 0000000C  E2421001  SUB         R1,R2,#0x0001 ; i
 00000010  E3520000  CMP         R2,#0x0000 ; i
 00000014  1AFFFFFB  BNE         L_5  ; Targ=0x8
   22:   }
 00000018          L_1:
 00000018  E1A01000  MOV         R1,R0 ; x
 0000001C  E2410001  SUB         R0,R1,#0x0001 ; x
 00000020  E3510000  CMP         R1,#0x0000 ; x
 00000024  1AFFFFF6  BNE         L_3  ; Targ=0x4
 00000028            ; SCOPE-END
   23: }
 00000028  E12FFF1E  BX          R14
 0000002C          ENDP ; 'Delay_X_ms?A'


*** CODE SEGMENT '?PR?print_Z_w?A?others':
   27: void print_Z_w(void)
 00000000  E92D4010  STMDB       R13!,{R4,LR}
 00000004  E24DD010  SUB         R13,R13,#0x0010
   28: {
 00000008            ; SCOPE-START
   35:  if(Z_w_result>=0)
 00000008  E3A04000  MOV         R4,#0x0
 0000000C  E5100000  LDR         R0,=Z_w_result ; Z_w_result
 00000010  E5900000  LDR         R0,[R0,#0x0] ; Z_w_result
 00000014  E1A01004  MOV         R1,R4
 00000018  EBFFFFF8  BL          ?C?FPCMP?A  ; Targ=0x0 ; ?C?FPCMP?A
 0000001C  3A000003  BCC         L_9  ; Targ=0x30
   36:  {prints("+",0);}
 00000020  E3E00102  MVN         R0,#0x102 ; ??S_1
 00000024  E3A01000  MOV         R1,#0x0
ARM COMPILER V2.53,  others                                                                22/09/07  23:08:05  PAGE 4   

 00000028  EBFFFFF4  BL          prints?A  ; Targ=0x0
 0000002C  EA000002  B           L_10  ; Targ=0x3C
 00000030          L_9:
   37:  else{prints("-",0);}
 00000030  E3E00102  MVN         R0,#0x102 ; ??S_2
 00000034  E3A01000  MOV         R1,#0x0
 00000038  EBFFFFF0  BL          prints?A  ; Targ=0x0
 0000003C          L_10:
   38:  zero = ZERO_V;
 0000003C  E5100000  LDR         R0,=ZERO_V ; ZERO_V
 00000040  E5904000  LDR         R4,[R0,#0x0] ; ZERO_V
 00000044  ---- Variable 'zero' assigned to Register 'R4' ----
   39:  result=(int)((fabs)(Z_w_result*10));
 00000044  E5101000  LDR         R1,=0x41200000
 00000048  E5100000  LDR         R0,=Z_w_result ; Z_w_result
 0000004C  E5900000  LDR         R0,[R0,#0x0] ; Z_w_result
 00000050  EBFFFFEA  BL          ?C?FPMUL?A  ; Targ=0x0 ; ?C?FPMUL?A
 00000054  EBFFFFE9  BL          fabs?A  ; Targ=0x0
 00000058  EBFFFFE8  BL          ?C?CASTF?A  ; Targ=0x0 ; ?C?CASTF?A
 0000005C  E1A03000  MOV         R3,R0
 00000060  ---- Variable 'result' assigned to Register 'R3' ----
   40:  s_result[14]=0;                  //将结果转换成字符串
 00000060  E3A01000  MOV         R1,#0x0
 00000064  E3A0000E  MOV         R0,#0xE
 00000068  E080000D  ADD         R0,R0,R13
 0000006C  E5C01000  STRB        R1,[R0,#0x0] ; s_result+14
   42:  s_result[13]='0'+zero%10;
 00000070  E1A00004  MOV         R0,R4 ; zero
 00000074  E3A0100A  MOV         R1,#0xA
 00000078  EBFFFFE0  BL          ?C?SDIV?A  ; Targ=0x0 ; ?C?SDIV?A
 0000007C  E1A01000  MOV         R1,R0
 00000080  E2811030  ADD         R1,R1,#0x0030
 00000084  E1A01C01  MOV         R1,R1,LSL #24
 00000088  E1A01C21  MOV         R1,R1,LSR #24

⌨️ 快捷键说明

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