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

📄 stm32f10x_adc.s

📁 完成数据的采集
💻 S
📖 第 1 页 / 共 2 页
字号:
///////////////////////////////////////////////////////////////////////////////
//                                                                            /
//                                                      30/Jul/2008  14:37:38 /
// IAR ARM ANSI C/C++ Compiler V5.11.0.20622/W32 EVALUATION                   /
// Copyright 1999-2007 IAR Systems. All rights reserved.                      /
//                                                                            /
//    Cpu mode     =  thumb                                                   /
//    Endian       =  little                                                  /
//    Source file  =  E:\library\src\stm32f10x_adc.c                          /
//    Command line =  E:\library\src\stm32f10x_adc.c -D EMB_FLASH -lCN        /
//                    E:\ELE\yten\pro\Debug\List\ -lb                         /
//                    E:\ELE\yten\pro\Debug\List\ -o                          /
//                    E:\ELE\yten\pro\Debug\Obj\ --no_cse --no_unroll         /
//                    --no_inline --no_code_motion --no_tbaa --no_clustering  /
//                    --no_scheduling --debug --endian little --cpu           /
//                    Cortex-M3 -e --fpu None --dlib_config "C:\Program       /
//                    Files\IAR Systems\Embedded Workbench 5.0                /
//                    Evaluation\ARM\INC\DLib_Config_Normal.h" -I             /
//                    E:\ELE\yten\pro\ -I E:\ELE\yten\pro\..\LIBRARY\INC\ -I  /
//                    "C:\Program Files\IAR Systems\Embedded Workbench 5.0    /
//                    Evaluation\ARM\INC\" --section .text=.XML -On           /
//    List file    =  E:\ELE\yten\pro\Debug\List\stm32f10x_adc.s              /
//                                                                            /
//                                                                            /
///////////////////////////////////////////////////////////////////////////////

        NAME stm32f10x_adc

        EXTERN RCC_APB2PeriphResetCmd

        PUBLIC ADC_AnalogWatchdogCmd
        PUBLIC ADC_AnalogWatchdogSingleChannelConfig
        PUBLIC ADC_AnalogWatchdogThresholdsConfig
        PUBLIC ADC_AutoInjectedConvCmd
        PUBLIC ADC_ClearFlag
        PUBLIC ADC_ClearITPendingBit
        PUBLIC ADC_Cmd
        PUBLIC ADC_DMACmd
        PUBLIC ADC_DeInit
        PUBLIC ADC_DiscModeChannelCountConfig
        PUBLIC ADC_DiscModeCmd
        PUBLIC ADC_ExternalTrigConvCmd
        PUBLIC ADC_ExternalTrigInjectedConvCmd
        PUBLIC ADC_ExternalTrigInjectedConvConfig
        PUBLIC ADC_GetCalibrationStatus
        PUBLIC ADC_GetConversionValue
        PUBLIC ADC_GetDualModeConversionValue
        PUBLIC ADC_GetFlagStatus
        PUBLIC ADC_GetITStatus
        PUBLIC ADC_GetInjectedConversionValue
        PUBLIC ADC_GetResetCalibrationStatus
        PUBLIC ADC_GetSoftwareStartConvStatus
        PUBLIC ADC_GetSoftwareStartInjectedConvCmdStatus
        PUBLIC ADC_ITConfig
        PUBLIC ADC_Init
        PUBLIC ADC_InjectedChannelConfig
        PUBLIC ADC_InjectedDiscModeCmd
        PUBLIC ADC_InjectedSequencerLengthConfig
        PUBLIC ADC_RegularChannelConfig
        PUBLIC ADC_ResetCalibration
        PUBLIC ADC_SetInjectedOffset
        PUBLIC ADC_SoftwareStartConvCmd
        PUBLIC ADC_SoftwareStartInjectedConvCmd
        PUBLIC ADC_StartCalibration
        PUBLIC ADC_StructInit
        PUBLIC ADC_TempSensorVrefintCmd


        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
ADC_DeInit:
        PUSH     {R4,LR}
        MOVS     R4,R0
        MOVS     R0,R4
        LDR.N    R1,??ADC_DeInit_0  ;; 0x40012400
        SUBS     R0,R0,R1
        BEQ.N    ??ADC_DeInit_1
        MOVS     R1,#+1024
        SUBS     R0,R0,R1
        BEQ.N    ??ADC_DeInit_2
        B.N      ??ADC_DeInit_3
??ADC_DeInit_1:
        MOVS     R1,#+1
        MOVS     R0,#+512
        BL       RCC_APB2PeriphResetCmd
        MOVS     R1,#+0
        MOVS     R0,#+512
        BL       RCC_APB2PeriphResetCmd
        B.N      ??ADC_DeInit_3
??ADC_DeInit_2:
        MOVS     R1,#+1
        MOVS     R0,#+1024
        BL       RCC_APB2PeriphResetCmd
        MOVS     R1,#+0
        MOVS     R0,#+1024
        BL       RCC_APB2PeriphResetCmd
??ADC_DeInit_3:
        POP      {R4,PC}          ;; return
        Nop      
        DATA
??ADC_DeInit_0:
        DC32     0x40012400

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
ADC_Init:
        PUSH     {R4,R5}
        MOVS     R4,#+0
        MOVS     R3,R4
        MOVS     R4,#+0
        MOVS     R2,R4
        LDR      R4,[R0, #+4]
        MOVS     R3,R4
        MOVS     R4,R3
        LDR.N    R3,??ADC_Init_0  ;; 0xfff0feff
        ANDS     R3,R3,R4
        MOVS     R5,R3
        LDR      R3,[R1, #+0]
        LDRB     R4,[R1, #+4]
        ORRS     R3,R3,R4, LSL #+8
        ORRS     R3,R3,R5
        STR      R3,[R0, #+4]
        LDR      R4,[R0, #+8]
        MOVS     R3,R4
        MOVS     R4,R3
        LDR.N    R3,??ADC_Init_0+0x4  ;; 0xfff1f7fd
        ANDS     R3,R3,R4
        MOVS     R5,R3
        LDR      R3,[R1, #+12]
        LDR      R4,[R1, #+8]
        ORRS     R4,R4,R3
        LDRB     R3,[R1, #+5]
        ORRS     R3,R4,R3, LSL #+1
        ORRS     R3,R3,R5
        STR      R3,[R0, #+8]
        LDR      R4,[R0, #+44]
        MOVS     R3,R4
        MOVS     R4,R3
        MVNS     R3,#+15728640
        ANDS     R3,R3,R4
        MOVS     R4,R2
        LDRB     R2,[R1, #+16]
        SUBS     R2,R2,#+1
        ORRS     R2,R2,R4
        UXTB     R2,R2            ;; ZeroExtS R2,R2,#+24,#+24
        ORRS     R3,R3,R2, LSL #+20
        STR      R3,[R0, #+44]
        POP      {R4,R5}
        BX       LR               ;; return
        Nop      
        DATA
??ADC_Init_0:
        DC32     0xfff0feff
        DC32     0xfff1f7fd

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
ADC_StructInit:
        MOVS     R1,#+0
        STR      R1,[R0, #+0]
        MOVS     R1,#+0
        STRB     R1,[R0, #+4]
        MOVS     R1,#+0
        STRB     R1,[R0, #+5]
        MOVS     R1,#+0
        STR      R1,[R0, #+8]
        MOVS     R1,#+0
        STR      R1,[R0, #+12]
        MOVS     R1,#+1
        STRB     R1,[R0, #+16]
        BX       LR               ;; return

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
ADC_Cmd:
        UXTB     R1,R1            ;; ZeroExtS R1,R1,#+24,#+24
        CMP      R1,#+0
        BEQ.N    ??ADC_Cmd_0
        LDR      R2,[R0, #+8]
        ORRS     R2,R2,#0x1
        STR      R2,[R0, #+8]
        B.N      ??ADC_Cmd_1
??ADC_Cmd_0:
        LDR      R2,[R0, #+8]
        MOVS     R3,#+1
        BICS     R2,R2,R3
        STR      R2,[R0, #+8]
??ADC_Cmd_1:
        BX       LR               ;; return

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
ADC_DMACmd:
        UXTB     R1,R1            ;; ZeroExtS R1,R1,#+24,#+24
        CMP      R1,#+0
        BEQ.N    ??ADC_DMACmd_0
        LDR      R2,[R0, #+8]
        ORRS     R2,R2,#0x100
        STR      R2,[R0, #+8]
        B.N      ??ADC_DMACmd_1
??ADC_DMACmd_0:
        LDR      R2,[R0, #+8]
        LDR.N    R3,??ADC_DMACmd_2  ;; 0xfeff
        ANDS     R3,R3,R2
        STR      R3,[R0, #+8]
??ADC_DMACmd_1:
        BX       LR               ;; return
        Nop      
        DATA
??ADC_DMACmd_2:
        DC32     0xfeff

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
ADC_ITConfig:
        PUSH     {R0,R4}
        MOVS     R4,#+0
        MOVS     R3,R4
        MOVS     R4,R1
        MOVS     R3,R4
        UXTB     R2,R2            ;; ZeroExtS R2,R2,#+24,#+24
        CMP      R2,#+0
        BEQ.N    ??ADC_ITConfig_0
        LDR      R4,[R0, #+4]
        UXTB     R3,R3            ;; ZeroExtS R3,R3,#+24,#+24
        ORRS     R4,R4,R3
        STR      R4,[R0, #+4]
        B.N      ??ADC_ITConfig_1
??ADC_ITConfig_0:
        LDR      R4,[R0, #+4]
        UXTB     R3,R3            ;; ZeroExtS R3,R3,#+24,#+24
        BICS     R4,R4,R3
        STR      R4,[R0, #+4]
??ADC_ITConfig_1:
        ADD      SP,SP,#+4
        POP      {R4}
        BX       LR               ;; return

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
ADC_ResetCalibration:
        LDR      R1,[R0, #+8]
        ORRS     R1,R1,#0x8
        STR      R1,[R0, #+8]
        BX       LR               ;; return

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
ADC_GetResetCalibrationStatus:
        MOVS     R1,R0
        MOVS     R2,#+0
        MOVS     R0,R2
        LDR      R2,[R1, #+8]
        MOVS     R3,#+8
        ANDS     R3,R3,R2
        SUBS     R2,R3,#+1
        SBCS     R2,R2,R2
        MVNS     R2,R2
        LSRS     R2,R2,#+31
        MOVS     R0,R2
        UXTB     R0,R0            ;; ZeroExtS R0,R0,#+24,#+24
        BX       LR               ;; return

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
ADC_StartCalibration:
        LDR      R1,[R0, #+8]
        ORRS     R1,R1,#0x4
        STR      R1,[R0, #+8]
        BX       LR               ;; return

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
ADC_GetCalibrationStatus:
        MOVS     R1,R0
        MOVS     R2,#+0
        MOVS     R0,R2
        LDR      R2,[R1, #+8]
        MOVS     R3,#+4
        ANDS     R3,R3,R2
        SUBS     R2,R3,#+1
        SBCS     R2,R2,R2
        MVNS     R2,R2
        LSRS     R2,R2,#+31
        MOVS     R0,R2
        UXTB     R0,R0            ;; ZeroExtS R0,R0,#+24,#+24
        BX       LR               ;; return

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
ADC_SoftwareStartConvCmd:
        UXTB     R1,R1            ;; ZeroExtS R1,R1,#+24,#+24
        CMP      R1,#+0
        BEQ.N    ??ADC_SoftwareStartConvCmd_0
        LDR      R2,[R0, #+8]
        ORRS     R2,R2,#0x500000
        STR      R2,[R0, #+8]
        B.N      ??ADC_SoftwareStartConvCmd_1
??ADC_SoftwareStartConvCmd_0:
        LDR      R2,[R0, #+8]
        MVNS     R3,#+5242880
        ANDS     R3,R3,R2
        STR      R3,[R0, #+8]
??ADC_SoftwareStartConvCmd_1:
        BX       LR               ;; return

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
ADC_GetSoftwareStartConvStatus:
        MOVS     R1,R0
        MOVS     R2,#+0
        MOVS     R0,R2
        LDR      R2,[R1, #+8]
        MOVS     R3,#+4194304
        ANDS     R3,R3,R2
        SUBS     R2,R3,#+1
        SBCS     R2,R2,R2
        MVNS     R2,R2
        LSRS     R2,R2,#+31
        MOVS     R0,R2
        UXTB     R0,R0            ;; ZeroExtS R0,R0,#+24,#+24
        BX       LR               ;; return

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
ADC_DiscModeChannelCountConfig:
        PUSH     {R0,R4}
        MOVS     R4,#+0
        MOVS     R3,R4
        MOVS     R4,#+0
        MOVS     R2,R4
        LDR      R4,[R0, #+4]
        MOVS     R3,R4
        MOVS     R4,R3
        MVNS     R3,#+57344
        ANDS     R3,R3,R4
        SUBS     R4,R1,#+1
        MOVS     R2,R4
        UXTB     R2,R2            ;; ZeroExtS R2,R2,#+24,#+24
        ORRS     R3,R3,R2, LSL #+13
        STR      R3,[R0, #+4]
        ADD      SP,SP,#+4
        POP      {R4}
        BX       LR               ;; return

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
ADC_DiscModeCmd:
        UXTB     R1,R1            ;; ZeroExtS R1,R1,#+24,#+24
        CMP      R1,#+0
        BEQ.N    ??ADC_DiscModeCmd_0
        LDR      R2,[R0, #+4]
        ORRS     R2,R2,#0x800
        STR      R2,[R0, #+4]
        B.N      ??ADC_DiscModeCmd_1
??ADC_DiscModeCmd_0:
        LDR      R2,[R0, #+4]
        MVNS     R3,#+2048
        ANDS     R3,R3,R2
        STR      R3,[R0, #+4]
??ADC_DiscModeCmd_1:
        BX       LR               ;; return

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
ADC_RegularChannelConfig:
        PUSH     {R4-R7}
        MOVS     R6,#+0
        MOVS     R5,R6
        MOVS     R6,#+0
        MOVS     R4,R6
        UXTB     R1,R1            ;; ZeroExtS R1,R1,#+24,#+24
        CMP      R1,#+10
        BCC.N    ??ADC_RegularChannelConfig_0
        LDR      R6,[R0, #+12]
        MOVS     R5,R6
        MOVS     R6,#+7
        MOV      R12,R6
        SUBS     R7,R1,#+10
        MOVS     R6,#+3
        MULS     R7,R6,R7
        MOV      R6,R12
        LSLS     R6,R6,R7
        MOVS     R4,R6
        BICS     R5,R5,R4
        UXTB     R3,R3            ;; ZeroExtS R3,R3,#+24,#+24
        SUBS     R6,R1,#+10
        MOVS     R7,#+3
        MULS     R6,R7,R6
        LSLS     R6,R3,R6
        MOVS     R4,R6
        ORRS     R5,R5,R4
        STR      R5,[R0, #+12]
        B.N      ??ADC_RegularChannelConfig_1
??ADC_RegularChannelConfig_0:
        LDR      R6,[R0, #+16]
        MOVS     R5,R6
        MOVS     R6,#+7
        MOVS     R7,#+3
        MULS     R7,R1,R7
        LSLS     R6,R6,R7
        MOVS     R4,R6
        BICS     R5,R5,R4
        UXTB     R3,R3            ;; ZeroExtS R3,R3,#+24,#+24
        MOVS     R6,#+3
        MULS     R6,R1,R6
        LSLS     R6,R3,R6
        MOVS     R4,R6
        ORRS     R5,R5,R4
        STR      R5,[R0, #+16]
??ADC_RegularChannelConfig_1:
        UXTB     R2,R2            ;; ZeroExtS R2,R2,#+24,#+24
        CMP      R2,#+7
        BCS.N    ??ADC_RegularChannelConfig_2
        LDR      R6,[R0, #+52]
        MOVS     R5,R6
        MOVS     R6,#+31
        MOV      R12,R6
        SUBS     R7,R2,#+1
        MOVS     R6,#+5
        MULS     R7,R6,R7
        MOV      R6,R12
        LSLS     R6,R6,R7
        MOVS     R4,R6
        BICS     R5,R5,R4
        UXTB     R1,R1            ;; ZeroExtS R1,R1,#+24,#+24
        SUBS     R6,R2,#+1
        MOVS     R7,#+5
        MULS     R6,R7,R6
        LSLS     R6,R1,R6
        MOVS     R4,R6
        ORRS     R5,R5,R4
        STR      R5,[R0, #+52]
        B.N      ??ADC_RegularChannelConfig_3
??ADC_RegularChannelConfig_2:
        UXTB     R2,R2            ;; ZeroExtS R2,R2,#+24,#+24
        CMP      R2,#+13
        BCS.N    ??ADC_RegularChannelConfig_4
        LDR      R6,[R0, #+48]
        MOVS     R5,R6
        MOVS     R6,#+31
        MOV      R12,R6
        SUBS     R7,R2,#+7
        MOVS     R6,#+5
        MULS     R7,R6,R7
        MOV      R6,R12
        LSLS     R6,R6,R7
        MOVS     R4,R6
        BICS     R5,R5,R4

⌨️ 快捷键说明

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