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

📄 main.lst

📁 我找的ADXL345的代码
💻 LST
📖 第 1 页 / 共 5 页
字号:
 0000005C  4800      LDR         R0,=0xFFFF0700
 0000005E  6002      STR         R2,[R0,#0x0]
   61:     }
 00000060  E005      B           L_16  ; T=0x0000006E
 00000062          L_11:
   64:         COMTX='\A'-0x0A+Temp;   
 00000062  1C08      MOV         R0,R1 ; Temp
 00000064  0601      LSL         R1,R0,#0x18 ; Temp
 00000066  0E09      LSR         R1,R1,#0x18
 00000068  3137      ADD         R1,#0x37
 0000006A  4800      LDR         R0,=0xFFFF0700
 0000006C  6001      STR         R1,[R0,#0x0]
   66:     while(!(0x020==(COMSTA0 & 0x020)))  {;} 
 0000006E          L_16:
 0000006E          L_13:
 0000006E  4800      LDR         R0,=0xFFFF0714
 00000070  6800      LDR         R0,[R0,#0x0]
 00000072  2120      MOV         R1,#0x20
 00000074  4208      TST         R0,R1
 00000076  D0FA      BEQ         L_13  ; T=0x0000006E
 00000078            ; SCOPE-END
   67: }
 00000078  4770      BX          R14
 0000007A          ENDP ; 'DisplayChar?T'


*** CODE SEGMENT '?PR?IRQ_Handler?A?main':
   70: void IRQ_Handler() __irq
 00000000  E92D0007  STMDB       R13!,{R0-R2}
ARM COMPILER V2.42,  main                                                                  11/08/08  15:14:09  PAGE 13  

   71: {
 00000004            ; SCOPE-START
   75:     UartInterrupt =COMIID0 ;
 00000004  E5100000  LDR         R0,=0xFFFF0708
 00000008  E5901000  LDR         R1,[R0,#0x0]
 0000000C  E1A01C01  MOV         R1,R1,LSL #24
 00000010  E1A01C21  MOV         R1,R1,LSR #24
 00000014  ---- Variable 'UartInterrupt' assigned to Register 'R1' ----
   76:     if(UartInterrupt==0x04)//Has Received a Data
 00000014  E1A00001  MOV         R0,R1 ; UartInterrupt
 00000018  E1A00C00  MOV         R0,R0,LSL #24 ; UartInterrupt
 0000001C  E1A00C20  MOV         R0,R0,LSR #24
 00000020  E3500004  CMP         R0,#0x0004
 00000024  1A00001D  BNE         L_17  ; Targ=0xA0
   78:         UartDataReceived=COMRX; //Get received data
 00000028  E5100000  LDR         R0,=0xFFFF0700
 0000002C  E5901000  LDR         R1,[R0,#0x0]
 00000030  E1A01C01  MOV         R1,R1,LSL #24
 00000034  E1A01C21  MOV         R1,R1,LSR #24
 00000038  ---- Variable 'UartDataReceived' assigned to Register 'R1' ----
   80:         if(UartDataReceived==0xAA)  //Test connection by sending out device ID  
 00000038  E1A00001  MOV         R0,R1 ; UartDataReceived
 0000003C  E1A00C00  MOV         R0,R0,LSL #24 ; UartDataReceived
 00000040  E1A00C20  MOV         R0,R0,LSR #24
 00000044  E35000AA  CMP         R0,#0x00AA
 00000048  1A000004  BNE         L_18  ; Targ=0x60
   82:             COMTX=DevID;    
 0000004C  E5100000  LDR         R0,=DevID ; DevID
 00000050  E5D00000  LDRB        R0,[R0,#0x0] ; DevID
 00000054  E1A02000  MOV         R2,R0
 00000058  E5100000  LDR         R0,=0xFFFF0700
 0000005C  E5802000  STR         R2,[R0,#0x0]
   83:         }
 00000060          L_18:
   84:         if(UartDataReceived==0x55)  //Start command 
 00000060  E1A00001  MOV         R0,R1 ; UartDataReceived
 00000064  E1A00C00  MOV         R0,R0,LSL #24 ; UartDataReceived
 00000068  E1A00C20  MOV         R0,R0,LSR #24
 0000006C  E3500055  CMP         R0,#0x0055
 00000070  1A000002  BNE         L_19  ; Targ=0x80
   86:             IsStart=0x01;   
 00000074  E3A02001  MOV         R2,#0x1
 00000078  E5100000  LDR         R0,=IsStart ; IsStart
 0000007C  E5C02000  STRB        R2,[R0,#0x0] ; IsStart
   87:         }
 00000080          L_19:
   88:         if(UartDataReceived==0xA5)  //Stop command  
 00000080  E1A00001  MOV         R0,R1 ; UartDataReceived
 00000084  E1A00C00  MOV         R0,R0,LSL #24 ; UartDataReceived
 00000088  E1A00C20  MOV         R0,R0,LSR #24
 0000008C  E35000A5  CMP         R0,#0x00A5
 00000090  1A000002  BNE         L_17  ; Targ=0xA0
   90:             IsStart=0x00;   
 00000094  E3A01000  MOV         R1,#0x0
 00000098  E5100000  LDR         R0,=IsStart ; IsStart
 0000009C  E5C01000  STRB        R1,[R0,#0x0] ; IsStart
   92:     }
 000000A0          L_17:
 000000A0            ; SCOPE-END
  100: }
 000000A0  E8BD0007  LDMIA       R13!,{R0-R2}
 000000A4  E25EF004  SUBS        R15,R14,#0x0004
 000000A8          ENDP ; 'IRQ_Handler?A'


*** CODE SEGMENT '?PR?UART_Initiate?T?main':
  107:     GP1CON = 0x2211;                // I2C on P1.2 and P1.3   Setup tx & rx pins on P1.0 and P1.1 for UART
 00000000  4800      LDR         R1,=0x2211
ARM COMPILER V2.42,  main                                                                  11/08/08  15:14:09  PAGE 14  

 00000002  4800      LDR         R0,=0xFFFFF404
 00000004  6001      STR         R1,[R0,#0x0]
  110:     POWKEY1 = 0x01;             //Start PLL setting,changeless
 00000006  2101      MOV         R1,#0x1
 00000008  4800      LDR         R0,=0xFFFF0404
 0000000A  6001      STR         R1,[R0,#0x0]
  111:     POWCON=0x00;
 0000000C  2100      MOV         R1,#0x0
 0000000E  4800      LDR         R0,=0xFFFF0408
 00000010  6001      STR         R1,[R0,#0x0]
  112:     POWKEY2 = 0xF4;             //Finish PLL setting,changeless
 00000012  22F4      MOV         R2,#0xF4
 00000014  4800      LDR         R0,=0xFFFF040C
 00000016  6002      STR         R2,[R0,#0x0]
  114:     COMCON0 = 0x80;                 // Setting DLAB
 00000018  2280      MOV         R2,#0x80
 0000001A  4800      LDR         R0,=0xFFFF070C
 0000001C  6002      STR         R2,[R0,#0x0]
  115:        COMDIV0 = 0x0B;                  // Setting DIV0 and DIV1 to DL calculated
 0000001E  220B      MOV         R2,#0xB
 00000020  4800      LDR         R0,=0xFFFF0700
 00000022  6002      STR         R2,[R0,#0x0]
  116:     COMDIV1 = 0x00;
 00000024  4800      LDR         R0,=0xFFFF0704
 00000026  6001      STR         R1,[R0,#0x0]
  117:        COMCON0 = 0x07;                  // Clearing DLAB
 00000028  2107      MOV         R1,#0x7
 0000002A  4800      LDR         R0,=0xFFFF070C
 0000002C  6001      STR         R1,[R0,#0x0]
  120:       COMDIV2 = 0x883E;             // M=1
 0000002E  4800      LDR         R1,=0x883E
 00000030  4800      LDR         R0,=0xFFFF072C
 00000032  6001      STR         R1,[R0,#0x0]
  128:     COMIEN0=0x03;                   
 00000034  2103      MOV         R1,#0x3
 00000036  4800      LDR         R0,=0xFFFF0704
 00000038  6001      STR         R1,[R0,#0x0]
  129:     IRQEN = 0x4000; 
 0000003A  4800      LDR         R1,=0x4000
 0000003C  4800      LDR         R0,=0xFFFF0008
 0000003E  6001      STR         R1,[R0,#0x0]
  131: }
 00000040  4770      BX          R14
 00000042          ENDP ; 'UART_Initiate?T'


*** CODE SEGMENT '?PR?I2C1_Initiate?T?main':
  138:     GP1CON = 0x2211;                // I2C on P1.2 and P1.3   Setup tx & rx pins on P1.0 and P1.1 for UART
 00000000  4800      LDR         R1,=0x2211
 00000002  4800      LDR         R0,=0xFFFFF404
 00000004  6001      STR         R1,[R0,#0x0]
  139:     I2C1CFG = 0x82;                 // Master Enable & Enable Generation of Master Clock
 00000006  2182      MOV         R1,#0x82
 00000008  4800      LDR         R0,=0xFFFF092C
 0000000A  6001      STR         R1,[R0,#0x0]
  142:      I2C1DIV = 0x3232;              // 0x3232 = 400kHz
 0000000C  4800      LDRH        R1,=0x3232
 0000000E  4800      LDR         R0,=0xFFFF0930
 00000010  8001      STRH        R1,[R0,#0x0]
  146:     FIQEN |= SM_MASTER1_BIT;    
 00000012  4800      LDR         R2,=0x800
 00000014  4800      LDR         R0,=0xFFFF0108
 00000016  6801      LDR         R1,[R0,#0x0]
 00000018  4311      ORR         R1,R2
 0000001A  6001      STR         R1,[R0,#0x0]
  148: }
 0000001C  4770      BX          R14
 0000001E          ENDP ; 'I2C1_Initiate?T'

ARM COMPILER V2.42,  main                                                                  11/08/08  15:14:09  PAGE 15  


*** CODE SEGMENT '?PR?ADuC7026_Initiate?T?main':
  151: void ADuC7026_Initiate(void)
 00000000  B500      PUSH        {LR}
  154:     UART_Initiate();
 00000002  F7FF      BL          UART_Initiate?T  ; T=0x0001  (1)
 00000004  FFFD      BL          UART_Initiate?T  ; T=0x0001  (2)
  155:     I2C1_Initiate();
 00000006  F7FF      BL          I2C1_Initiate?T  ; T=0x0001  (1)
 00000008  FFFB      BL          I2C1_Initiate?T  ; T=0x0001  (2)
  157: }
 0000000A  BC08      POP         {R3}
 0000000C  4718      BX          R3
 0000000E          ENDP ; 'ADuC7026_Initiate?T'


*** CODE SEGMENT '?PR?ADXL345_Initiate?T?main':
  160: void ADXL345_Initiate()
 00000000  B500      PUSH        {LR}
  162:     I2C_WRITE_REGISTER(0x2D,0x08);  //Power CTL: Measure mode
 00000002  202D      MOV         R0,#0x2D
 00000004  2108      MOV         R1,#0x8
 00000006  F7FF      BL          I2C_WRITE_REGISTER?T  ; T=0x0001  (1)
 00000008  FFFB      BL          I2C_WRITE_REGISTER?T  ; T=0x0001  (2)
  163:     I2C_WRITE_REGISTER(0x2C,0x0C);  //Rate: 200Hz
 0000000A  202C      MOV         R0,#0x2C
 0000000C  210C      MOV         R1,#0xC
 0000000E  F7FF      BL          I2C_WRITE_REGISTER?T  ; T=0x0001  (1)
 00000010  FFF7      BL          I2C_WRITE_REGISTER?T  ; T=0x0001  (2)
  164:     I2C_WRITE_REGISTER(0x31,0x01);  //Data Format: 8g right justified   128=1g
 00000012  2031      MOV         R0,#0x31
 00000014  2101      MOV         R1,#0x1
 00000016  F7FF      BL          I2C_WRITE_REGISTER?T  ; T=0x0001  (1)
 00000018  FFF3      BL          I2C_WRITE_REGISTER?T  ; T=0x0001  (2)
  166:         I2C_WRITE_REGISTER(0x2E,0xE4);  //Int En: Data Rdy, Single Tap, Doulbe Tap,Free fall
 0000001A  202E      MOV         R0,#0x2E
 0000001C  21E4      MOV         R1,#0xE4
 0000001E  F7FF      BL          I2C_WRITE_REGISTER?T  ; T=0x0001  (1)
 00000020  FFEF      BL          I2C_WRITE_REGISTER?T  ; T=0x0001  (2)
  167:           I2C_WRITE_REGISTER(0x2A,0x01);  //Z Axis Tap
 00000022  202A      MOV         R0,#0x2A
 00000024  2101      MOV         R1,#0x1
 00000026  F7FF      BL          I2C_WRITE_REGISTER?T  ; T=0x0001  (1)
 00000028  FFEB      BL          I2C_WRITE_REGISTER?T  ; T=0x0001  (2)
  168:     I2C_WRITE_REGISTER(0x1D,0x20);  //Tap Threshold: 2G;
 0000002A  201D      MOV         R0,#0x1D
 0000002C  2120      MOV         R1,#0x20
 0000002E  F7FF      BL          I2C_WRITE_REGISTER?T  ; T=0x0001  (1)
 00000030  FFE7      BL          I2C_WRITE_REGISTER?T  ; T=0x0001  (2)
  169:         I2C_WRITE_REGISTER(0x28,0x09);  //FreeFall Threshold: 300mg;
 00000032  2028      MOV         R0,#0x28
 00000034  2109      MOV         R1,#0x9
 00000036  F7FF      BL          I2C_WRITE_REGISTER?T  ; T=0x0001  (1)
 00000038  FFE3      BL          I2C_WRITE_REGISTER?T  ; T=0x0001  (2)
  170:         I2C_WRITE_REGISTER(0x29,0x14);  //FreeFall Timing:100ms
 0000003A  2029      MOV         R0,#0x29
 0000003C  2114      MOV         R1,#0x14
 0000003E  F7FF      BL          I2C_WRITE_REGISTER?T  ; T=0x0001  (1)
 00000040  FFDF      BL          I2C_WRITE_REGISTER?T  ; T=0x0001  (2)
  171:     I2C_WRITE_REGISTER(0x21,0x50);  //Dur:50ms
 00000042  2021      MOV         R0,#0x21
 00000044  2150      MOV         R1,#0x50
 00000046  F7FF      BL          I2C_WRITE_REGISTER?T  ; T=0x0001  (1)
 00000048  FFDB      BL          I2C_WRITE_REGISTER?T  ; T=0x0001  (2)
  172:     I2C_WRITE_REGISTER(0x22,0x20);  //Latent: 40ms
 0000004A  2022      MOV         R0,#0x22
 0000004C  2120      MOV         R1,#0x20
 0000004E  F7FF      BL          I2C_WRITE_REGISTER?T  ; T=0x0001  (1)
 00000050  FFD7      BL          I2C_WRITE_REGISTER?T  ; T=0x0001  (2)
ARM COMPILER V2.42,  main                                                                  11/08/08  15:14:09  PAGE 16  

  173:     I2C_WRITE_REGISTER(0x23,0xF0);  //Window: 300ms
 00000052  2023      MOV         R0,#0x23
 00000054  21F0      MOV         R1,#0xF0
 00000056  F7FF      BL          I2C_WRITE_REGISTER?T  ; T=0x0001  (1)
 00000058  FFD3      BL          I2C_WRITE_REGISTER?T  ; T=0x0001  (2)
  175: }
 0000005A  BC08      POP         {R3}
 0000005C  4718      BX          R3
 0000005E          ENDP ; 'ADXL345_Initiate?T'


*** CODE SEGMENT '?PR?Delay?T?main':
  178: void Delay(unsigned int Time1, unsigned int Timer2)
 00000000  B470      PUSH        {R4-R6}
 00000002  ---- Variable 'Timer2' assigned to Register 'R1' ----
 00000002  ---- Variable 'Time1' assigned to Register 'R0' ----
  179: {
 00000002            ; SCOPE-START
  180:     unsigned int i, j, k=0xFFFF;
 00000002  4800      LDR         R3,=0xFFFF
 00000004  ---- Variable 'k' assigned to Register 'R3' ----
  181:     for(i=0;i<Time1;i++)

⌨️ 快捷键说明

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