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

📄 adc12.lst

📁 STR71x平台下实现ADC(数模转换)编程
💻 LST
字号:
##############################################################################
#                                                                            #
# IAR ARM ANSI C/C++ Compiler V4.30A/W32               08/Nov/2005  12:06:34 #
# Copyright 1999-2005 IAR Systems. All rights reserved.                      #
#                                                                            #
#    Cpu mode        =  interwork                                            #
#    Endian          =  little                                               #
#    Stack alignment =  4                                                    #
#    Source file     =  D:\Book-IAR\examples_ST\STR71x_ADC\source\adc12.c    #
#    Command line    =  D:\Book-IAR\examples_ST\STR71x_ADC\source\adc12.c    #
#                       -lC D:\Book-IAR\examples_ST\STR71x_ADC\Debug\List\   #
#                       -o D:\Book-IAR\examples_ST\STR71x_ADC\Debug\Obj\     #
#                       -s2 --no_cse --no_unroll --no_inline                 #
#                       --no_code_motion --no_tbaa --no_clustering           #
#                       --no_scheduling --debug --cpu_mode arm --endian      #
#                       little --cpu ARM7TDMI --stack_align 4 --interwork    #
#                       -e --fpu None --dlib_config "d:\IAR                  #
#                       Systems\Embedded Workbench                           #
#                       4.0\arm\LIB\dl4tpainl8n.h" -I                        #
#                       D:\Book-IAR\examples_ST\STR71x_ADC\ -I               #
#                       D:\Book-IAR\examples_ST\STR71x_ADC\include\ -I       #
#                       D:\Book-IAR\examples_ST\STR71x_ADC\source\ -I        #
#                       "d:\IAR Systems\Embedded Workbench 4.0\arm\INC\"     #
#    List file       =  D:\Book-IAR\examples_ST\STR71x_ADC\Debug\List\adc12. #
#                       lst                                                  #
#    Object file     =  D:\Book-IAR\examples_ST\STR71x_ADC\Debug\Obj\adc12.r #
#                       79                                                   #
#                                                                            #
#                                                                            #
##############################################################################

D:\Book-IAR\examples_ST\STR71x_ADC\source\adc12.c
      1          // adc12.c
      2          #include "adc12.h"
      3          
      4          /*******************************************************************************
      5          * 说明:ADC12_Init函数,初始化ADC
      6          * 参数:无
      7          * 返回值:无
      8          *******************************************************************************/

   \                                 In segment CODE, align 4, keep-with-next
      9          void ADC12_Init(void) {
     10            ADC12->CSR  = 0x00;
   \                     ADC12_Init:
   \   00000000   ........           LDR         R0,??DataTable16   ;; ADC12
   \   00000004   000090E5           LDR         R0,[R0, #+0]
   \   00000008   0010A0E3           MOV         R1,#+0
   \   0000000C   B012C0E1           STRH        R1,[R0, #+0x20]
     11            ADC12->CPR = 0x01;
   \   00000010   ........           LDR         R0,??DataTable16   ;; ADC12
   \   00000014   000090E5           LDR         R0,[R0, #+0]
   \   00000018   0110A0E3           MOV         R1,#+0x1
   \   0000001C   B013C0E1           STRH        R1,[R0, #+0x30]
     12          }
   \   00000020   1EFF2FE1           BX          LR                 ;; return
     13          
     14          /*******************************************************************************
     15          * 说明:ADC12_PrescalerConfig函数,配置预定标器
     16          * 参数:无
     17          * 返回值:无
     18          *******************************************************************************/

   \                                 In segment CODE, align 4, keep-with-next
     19          void ADC12_PrescalerConfig(u32 Adc12_clk) {
   \                     ADC12_PrescalerConfig:
   \   00000000   10402DE9           STMDB       SP!,{R4,LR}        ;; Push
   \   00000004   0040A0E1           MOV         R4,R0
     20            ADC12->CPR = (vu16) (RCCU_FrequencyValue(RCCU_PCLK)/(Adc12_clk*512*8));
   \   00000008   0300A0E3           MOV         R0,#+0x3
   \   0000000C   ........           _BLF        RCCU_FrequencyValue,RCCU_FrequencyValue??rA
   \   00000010   ........           LDR         R1,??DataTable16   ;; ADC12
   \   00000014   002091E5           LDR         R2,[R1, #+0]
   \   00000018   403DA0E3           MOV         R3,#+0x1000
   \   0000001C   930411E0           MULS        R1,R3,R4
   \   00000020   ........           _BLF        ??divu32_a,??rA??divu32_a
   \   00000024   B013C2E1           STRH        R1,[R2, #+0x30]
     21          }
   \   00000028   1040BDE8           LDMIA       SP!,{R4,LR}        ;; Pop
   \   0000002C   1EFF2FE1           BX          LR                 ;; return
     22          
     23          /*******************************************************************************
     24          * 说明:ADC12_ITConfig函数,允许/禁止中断
     25          * 参数:NewState=ENABLE->允许中断
     26          *       NewState=ENABLE->禁止中断
     27          * 返回值:无
     28          *******************************************************************************/

   \                                 In segment CODE, align 4, keep-with-next
     29          void ADC12_ITConfig(FunctionalState NewState) {
     30            if (NewState == ENABLE) {
   \                     ADC12_ITConfig:
   \   00000000   010050E3           CMP         R0,#+0x1
   \   00000004   3A00001A           BNE         ??ADC12_ITConfig_0
     31              if (ADC12->CSR & 0x0040) {
   \   00000008   ........           LDR         R1,??DataTable16   ;; ADC12
   \   0000000C   001091E5           LDR         R1,[R1, #+0]
   \   00000010   B012D1E1           LDRH        R1,[R1, #+0x20]
   \   00000014   400011E3           TST         R1,#+0x40
   \   00000018   2D00000A           BEQ         ??ADC12_ITConfig_1
     32                  switch (ADC12->CSR & 0x30) {  // 置位中断位与通道选择等效
   \   0000001C   ........           LDR         R1,??DataTable16   ;; ADC12
   \   00000020   001091E5           LDR         R1,[R1, #+0]
   \   00000024   B012D1E1           LDRH        R1,[R1, #+0x20]
   \   00000028   301011E2           ANDS        R1,R1,#+0x30
   \   0000002C   FF1011E2           ANDS        R1,R1,#+0xFF       ;; Zero extend
   \   00000030   000051E3           CMP         R1,#+0
   \   00000034   0600000A           BEQ         ??ADC12_ITConfig_2
   \   00000038   100051E3           CMP         R1,#+0x10
   \   0000003C   0C00000A           BEQ         ??ADC12_ITConfig_3
   \   00000040   200051E3           CMP         R1,#+0x20
   \   00000044   1200000A           BEQ         ??ADC12_ITConfig_4
   \   00000048   300051E3           CMP         R1,#+0x30
   \   0000004C   1800000A           BEQ         ??ADC12_ITConfig_5
   \   00000050   300000EA           B           ??ADC12_ITConfig_6
     33                      case 0x00 : ADC12->CSR |= ADC12_IT0_Mask;  break;
   \                     ??ADC12_ITConfig_2:
   \   00000054   ........           LDR         R1,??DataTable16   ;; ADC12
   \   00000058   001091E5           LDR         R1,[R1, #+0]
   \   0000005C   ........           LDR         R2,??DataTable16   ;; ADC12
   \   00000060   002092E5           LDR         R2,[R2, #+0]
   \   00000064   B022D2E1           LDRH        R2,[R2, #+0x20]
   \   00000068   402F92E3           ORRS        R2,R2,#+0x100
   \   0000006C   B022C1E1           STRH        R2,[R1, #+0x20]
   \   00000070   280000EA           B           ??ADC12_ITConfig_6
     34                      case 0x10 : ADC12->CSR |= ADC12_IT1_Mask;  break;
   \                     ??ADC12_ITConfig_3:
   \   00000074   ........           LDR         R1,??DataTable16   ;; ADC12
   \   00000078   001091E5           LDR         R1,[R1, #+0]
   \   0000007C   ........           LDR         R2,??DataTable16   ;; ADC12
   \   00000080   002092E5           LDR         R2,[R2, #+0]
   \   00000084   B022D2E1           LDRH        R2,[R2, #+0x20]
   \   00000088   802F92E3           ORRS        R2,R2,#+0x200
   \   0000008C   B022C1E1           STRH        R2,[R1, #+0x20]
   \   00000090   200000EA           B           ??ADC12_ITConfig_6
     35                      case 0x20 : ADC12->CSR |= ADC12_IT2_Mask;  break;
   \                     ??ADC12_ITConfig_4:
   \   00000094   ........           LDR         R1,??DataTable16   ;; ADC12
   \   00000098   001091E5           LDR         R1,[R1, #+0]
   \   0000009C   ........           LDR         R2,??DataTable16   ;; ADC12
   \   000000A0   002092E5           LDR         R2,[R2, #+0]
   \   000000A4   B022D2E1           LDRH        R2,[R2, #+0x20]
   \   000000A8   402E92E3           ORRS        R2,R2,#+0x400
   \   000000AC   B022C1E1           STRH        R2,[R1, #+0x20]
   \   000000B0   180000EA           B           ??ADC12_ITConfig_6
     36                      case 0x30 : ADC12->CSR |= ADC12_IT3_Mask;  break;
   \                     ??ADC12_ITConfig_5:
   \   000000B4   ........           LDR         R1,??DataTable16   ;; ADC12
   \   000000B8   001091E5           LDR         R1,[R1, #+0]
   \   000000BC   ........           LDR         R2,??DataTable16   ;; ADC12
   \   000000C0   002092E5           LDR         R2,[R2, #+0]
   \   000000C4   B022D2E1           LDRH        R2,[R2, #+0x20]
   \   000000C8   802E92E3           ORRS        R2,R2,#+0x800
   \   000000CC   B022C1E1           STRH        R2,[R1, #+0x20]
   \   000000D0   100000EA           B           ??ADC12_ITConfig_6
     37                  }
     38              }
     39              else
     40                 ADC12->CSR |= ADC12_IT_Mask;   // 循环方式,置位所有中断位
   \                     ??ADC12_ITConfig_1:
   \   000000D4   ........           LDR         R1,??DataTable16   ;; ADC12
   \   000000D8   001091E5           LDR         R1,[R1, #+0]
   \   000000DC   ........           LDR         R2,??DataTable16   ;; ADC12
   \   000000E0   002092E5           LDR         R2,[R2, #+0]
   \   000000E4   B022D2E1           LDRH        R2,[R2, #+0x20]
   \   000000E8   F02E92E3           ORRS        R2,R2,#+0xF00
   \   000000EC   B022C1E1           STRH        R2,[R1, #+0x20]
   \   000000F0   080000EA           B           ??ADC12_ITConfig_6
     41            }
     42            else
     43              ADC12->CSR &= ~ADC12_IT_Mask;     // 清除所有中断位
   \                     ??ADC12_ITConfig_0:
   \   000000F4   ........           LDR         R1,??DataTable16   ;; ADC12
   \   000000F8   001091E5           LDR         R1,[R1, #+0]
   \   000000FC   ........           LDR         R2,??DataTable16   ;; ADC12
   \   00000100   002092E5           LDR         R2,[R2, #+0]
   \   00000104   B022D2E1           LDRH        R2,[R2, #+0x20]
   \   00000108   FF30A0E3           MOV         R3,#+0xFF
   \   0000010C   F03C83E3           ORR         R3,R3,#+0xF000
   \   00000110   022013E0           ANDS        R2,R3,R2
   \   00000114   B022C1E1           STRH        R2,[R1, #+0x20]
     44          }
   \                     ??ADC12_ITConfig_6:
   \   00000118   1EFF2FE1           BX          LR                 ;; return

   \                                 In segment CODE, align 4, keep-with-next
   \                     ??DataTable16:
   \   00000000   ........           DC32        ADC12
     45          

   Maximum stack usage in bytes:

     Function              CSTACK
     --------              ------
     ADC12_ITConfig            0
     ADC12_Init                0
     ADC12_PrescalerConfig     8


   Segment part sizes:

     Function/Label        Bytes
     --------------        -----
     ADC12_Init              36
     ADC12_PrescalerConfig   48
     ADC12_ITConfig         284
     ??DataTable16            4
      Others                 36

 
 408 bytes in segment CODE
 
 372 bytes of CODE memory (+ 36 bytes shared)

Errors: none
Warnings: none

⌨️ 快捷键说明

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