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

📄 stm32f10x_adc.s

📁 完成数据的采集
💻 S
📖 第 1 页 / 共 2 页
字号:
        UXTB     R1,R1            ;; ZeroExtS R1,R1,#+24,#+24
        SUBS     R6,R2,#+7
        MOVS     R7,#+5
        MULS     R6,R7,R6
        LSLS     R6,R1,R6
        MOVS     R4,R6
        ORRS     R5,R5,R4
        STR      R5,[R0, #+48]
        B.N      ??ADC_RegularChannelConfig_3
??ADC_RegularChannelConfig_4:
        LDR      R6,[R0, #+44]
        MOVS     R5,R6
        MOVS     R6,#+31
        MOV      R12,R6
        SUBS     R7,R2,#+13
        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,#+13
        MOVS     R7,#+5
        MULS     R6,R7,R6
        LSLS     R6,R1,R6
        MOVS     R4,R6
        ORRS     R5,R5,R4
        STR      R5,[R0, #+44]
??ADC_RegularChannelConfig_3:
        POP      {R4-R7}
        BX       LR               ;; return

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
ADC_ExternalTrigConvCmd:
        UXTB     R1,R1            ;; ZeroExtS R1,R1,#+24,#+24
        CMP      R1,#+0
        BEQ.N    ??ADC_ExternalTrigConvCmd_0
        LDR      R2,[R0, #+8]
        ORRS     R2,R2,#0x100000
        STR      R2,[R0, #+8]
        B.N      ??ADC_ExternalTrigConvCmd_1
??ADC_ExternalTrigConvCmd_0:
        LDR      R2,[R0, #+8]
        MVNS     R3,#+1048576
        ANDS     R3,R3,R2
        STR      R3,[R0, #+8]
??ADC_ExternalTrigConvCmd_1:
        BX       LR               ;; return

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
ADC_GetConversionValue:
        LDR      R0,[R0, #+76]
        UXTH     R0,R0            ;; ZeroExtS R0,R0,#+16,#+16
        BX       LR               ;; return

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
ADC_GetDualModeConversionValue:
        LDR.N    R0,??ADC_GetDualModeConversionValue_0  ;; 0x4001244c
        LDR      R0,[R0, #+0]
        BX       LR               ;; return
        Nop      
        DATA
??ADC_GetDualModeConversionValue_0:
        DC32     0x4001244c

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
ADC_AutoInjectedConvCmd:
        UXTB     R1,R1            ;; ZeroExtS R1,R1,#+24,#+24
        CMP      R1,#+0
        BEQ.N    ??ADC_AutoInjectedConvCmd_0
        LDR      R2,[R0, #+4]
        ORRS     R2,R2,#0x400
        STR      R2,[R0, #+4]
        B.N      ??ADC_AutoInjectedConvCmd_1
??ADC_AutoInjectedConvCmd_0:
        LDR      R2,[R0, #+4]
        MVNS     R3,#+1024
        ANDS     R3,R3,R2
        STR      R3,[R0, #+4]
??ADC_AutoInjectedConvCmd_1:
        BX       LR               ;; return

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
ADC_InjectedDiscModeCmd:
        UXTB     R1,R1            ;; ZeroExtS R1,R1,#+24,#+24
        CMP      R1,#+0
        BEQ.N    ??ADC_InjectedDiscModeCmd_0
        LDR      R2,[R0, #+4]
        ORRS     R2,R2,#0x1000
        STR      R2,[R0, #+4]
        B.N      ??ADC_InjectedDiscModeCmd_1
??ADC_InjectedDiscModeCmd_0:
        LDR      R2,[R0, #+4]
        MVNS     R3,#+4096
        ANDS     R3,R3,R2
        STR      R3,[R0, #+4]
??ADC_InjectedDiscModeCmd_1:
        BX       LR               ;; return

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
ADC_ExternalTrigInjectedConvConfig:
        MOVS     R3,#+0
        MOVS     R2,R3
        LDR      R3,[R0, #+8]
        MOVS     R2,R3
        MOVS     R3,R2
        MVNS     R2,#+28672
        ANDS     R2,R2,R3
        ORRS     R2,R2,R1
        STR      R2,[R0, #+8]
        BX       LR               ;; return

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
ADC_ExternalTrigInjectedConvCmd:
        UXTB     R1,R1            ;; ZeroExtS R1,R1,#+24,#+24
        CMP      R1,#+0
        BEQ.N    ??ADC_ExternalTrigInjectedConvCmd_0
        LDR      R2,[R0, #+8]
        ORRS     R2,R2,#0x8000
        STR      R2,[R0, #+8]
        B.N      ??ADC_ExternalTrigInjectedConvCmd_1
??ADC_ExternalTrigInjectedConvCmd_0:
        LDR      R2,[R0, #+8]
        MVNS     R3,#+32768
        ANDS     R3,R3,R2
        STR      R3,[R0, #+8]
??ADC_ExternalTrigInjectedConvCmd_1:
        BX       LR               ;; return

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
ADC_SoftwareStartInjectedConvCmd:
        UXTB     R1,R1            ;; ZeroExtS R1,R1,#+24,#+24
        CMP      R1,#+0
        BEQ.N    ??ADC_SoftwareStartInjectedConvCmd_0
        LDR      R2,[R0, #+8]
        ORRS     R2,R2,#0x208000
        STR      R2,[R0, #+8]
        B.N      ??ADC_SoftwareStartInjectedConvCmd_1
??ADC_SoftwareStartInjectedConvCmd_0:
        LDR      R2,[R0, #+8]
        MVNS     R3,#+2129920
        ANDS     R3,R3,R2
        STR      R3,[R0, #+8]
??ADC_SoftwareStartInjectedConvCmd_1:
        BX       LR               ;; return

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
ADC_GetSoftwareStartInjectedConvCmdStatus:
        MOVS     R1,R0
        MOVS     R2,#+0
        MOVS     R0,R2
        LDR      R2,[R1, #+8]
        MOVS     R3,#+2097152
        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_InjectedChannelConfig:
        PUSH     {R0,R4-R8}
        MOV      R8,R3
        MOVS     R6,#+0
        MOVS     R5,R6
        MOVS     R6,#+0
        MOVS     R3,R6
        MOVS     R6,#+0
        MOVS     R4,R6
        UXTB     R1,R1            ;; ZeroExtS R1,R1,#+24,#+24
        CMP      R1,#+10
        BCC.N    ??ADC_InjectedChannelConfig_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     R3,R6
        BICS     R5,R5,R3
        MOV      R6,R8
        UXTB     R6,R6            ;; ZeroExtS R6,R6,#+24,#+24
        MOV      R12,R6
        SUBS     R7,R1,#+10
        MOVS     R6,#+3
        MULS     R7,R6,R7
        MOV      R6,R12
        LSLS     R6,R6,R7
        MOVS     R3,R6
        ORRS     R5,R5,R3
        STR      R5,[R0, #+12]
        B.N      ??ADC_InjectedChannelConfig_1
??ADC_InjectedChannelConfig_0:
        LDR      R6,[R0, #+16]
        MOVS     R5,R6
        MOVS     R6,#+7
        MOVS     R7,#+3
        MULS     R7,R1,R7
        LSLS     R6,R6,R7
        MOVS     R3,R6
        BICS     R5,R5,R3
        MOV      R6,R8
        UXTB     R6,R6            ;; ZeroExtS R6,R6,#+24,#+24
        MOVS     R7,#+3
        MULS     R7,R1,R7
        LSLS     R6,R6,R7
        MOVS     R3,R6
        ORRS     R5,R5,R3
        STR      R5,[R0, #+16]
??ADC_InjectedChannelConfig_1:
        LDR      R6,[R0, #+56]
        MOVS     R5,R6
        ANDS     R6,R5,#0x300000
        LSRS     R6,R6,#+20
        MOVS     R4,R6
        MOVS     R6,#+31
        MOV      R12,R6
        MOVS     R6,R2
        ADDS     R6,R6,#+3
        SUBS     R7,R6,R4
        SUBS     R7,R7,#+1
        MOVS     R6,#+5
        MULS     R7,R6,R7
        MOV      R6,R12
        LSLS     R6,R6,R7
        MOVS     R3,R6
        BICS     R5,R5,R3
        UXTB     R1,R1            ;; ZeroExtS R1,R1,#+24,#+24
        MOVS     R6,R2
        ADDS     R6,R6,#+3
        SUBS     R6,R6,R4
        SUBS     R6,R6,#+1
        MOVS     R7,#+5
        MULS     R6,R7,R6
        LSLS     R6,R1,R6
        MOVS     R3,R6
        ORRS     R5,R5,R3
        STR      R5,[R0, #+56]
        ADD      SP,SP,#+4
        POP      {R4-R8}
        BX       LR               ;; return

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

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
ADC_SetInjectedOffset:
        UXTB     R1,R1            ;; ZeroExtS R1,R1,#+24,#+24
        UXTH     R2,R2            ;; ZeroExtS R2,R2,#+16,#+16
        STR      R2,[R0, R1]
        BX       LR               ;; return

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
ADC_GetInjectedConversionValue:
        UXTB     R1,R1            ;; ZeroExtS R1,R1,#+24,#+24
        ADDS     R0,R0,R1
        LDR      R0,[R0, #+40]
        UXTH     R0,R0            ;; ZeroExtS R0,R0,#+16,#+16
        BX       LR               ;; return

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
ADC_AnalogWatchdogCmd:
        MOVS     R3,#+0
        MOVS     R2,R3
        LDR      R3,[R0, #+4]
        MOVS     R2,R3
        MOVS     R3,R2
        LDR.N    R2,??ADC_AnalogWatchdogCmd_0  ;; 0xff3ffdff
        ANDS     R2,R2,R3
        ORRS     R2,R2,R1
        STR      R2,[R0, #+4]
        BX       LR               ;; return
        DATA
??ADC_AnalogWatchdogCmd_0:
        DC32     0xff3ffdff

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
ADC_AnalogWatchdogThresholdsConfig:
        UXTH     R1,R1            ;; ZeroExtS R1,R1,#+16,#+16
        STR      R1,[R0, #+36]
        UXTH     R2,R2            ;; ZeroExtS R2,R2,#+16,#+16
        STR      R2,[R0, #+40]
        BX       LR               ;; return

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
ADC_AnalogWatchdogSingleChannelConfig:
        MOVS     R3,#+0
        MOVS     R2,R3
        LDR      R3,[R0, #+4]
        MOVS     R2,R3
        MOVS     R3,#+31
        BICS     R2,R2,R3
        UXTB     R1,R1            ;; ZeroExtS R1,R1,#+24,#+24
        ORRS     R2,R2,R1
        STR      R2,[R0, #+4]
        BX       LR               ;; return

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
ADC_TempSensorVrefintCmd:
        UXTB     R0,R0            ;; ZeroExtS R0,R0,#+24,#+24
        CMP      R0,#+0
        BEQ.N    ??ADC_TempSensorVrefintCmd_0
        LDR.N    R1,??ADC_TempSensorVrefintCmd_1  ;; 0x40012408
        LDR      R1,[R1, #+0]
        ORRS     R1,R1,#0x800000
        LDR.N    R2,??ADC_TempSensorVrefintCmd_1  ;; 0x40012408
        STR      R1,[R2, #+0]
        B.N      ??ADC_TempSensorVrefintCmd_2
??ADC_TempSensorVrefintCmd_0:
        LDR.N    R1,??ADC_TempSensorVrefintCmd_1  ;; 0x40012408
        LDR      R1,[R1, #+0]
        MVNS     R2,#+8388608
        ANDS     R2,R2,R1
        LDR.N    R1,??ADC_TempSensorVrefintCmd_1  ;; 0x40012408
        STR      R2,[R1, #+0]
??ADC_TempSensorVrefintCmd_2:
        BX       LR               ;; return
        DATA
??ADC_TempSensorVrefintCmd_1:
        DC32     0x40012408

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

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
ADC_ClearFlag:
        LDR      R2,[R0, #+0]
        UXTB     R1,R1            ;; ZeroExtS R1,R1,#+24,#+24
        BICS     R2,R2,R1
        STR      R2,[R0, #+0]
        BX       LR               ;; return

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
ADC_GetITStatus:
        PUSH     {R4-R6,LR}
        MOVS     R2,R0
        MOVS     R5,#+0
        MOVS     R0,R5
        MOVS     R5,#+0
        MOVS     R3,R5
        UXTH     R1,R1            ;; ZeroExtS R1,R1,#+16,#+16
        LSRS     R5,R1,#+8
        MOVS     R3,R5
        LDR      R5,[R2, #+4]
        MOVS     R6,R1
        ANDS     R6,R6,R5
        MOVS     R4,R6
        LDR      R5,[R2, #+0]
        TST      R5,R3
        BEQ.N    ??ADC_GetITStatus_0
        MOVS     R0,R4
        UXTB     R0,R0            ;; ZeroExtS R0,R0,#+24,#+24
        SUBS     R0,R0,#+1
        SBCS     R0,R0,R0
        MVNS     R0,R0
        LSRS     R0,R0,#+31
        B.N      ??ADC_GetITStatus_1
??ADC_GetITStatus_0:
        MOVS     R5,#+0
        MOVS     R0,R5
??ADC_GetITStatus_1:
        UXTB     R0,R0            ;; ZeroExtS R0,R0,#+24,#+24
        POP      {R4-R6,PC}       ;; return

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
ADC_ClearITPendingBit:
        MOVS     R3,#+0
        MOVS     R2,R3
        UXTH     R1,R1            ;; ZeroExtS R1,R1,#+16,#+16
        LSRS     R3,R1,#+8
        MOVS     R2,R3
        LDR      R3,[R0, #+0]
        UXTB     R2,R2            ;; ZeroExtS R2,R2,#+24,#+24
        BICS     R3,R3,R2
        STR      R3,[R0, #+0]
        BX       LR               ;; return

        END
// 
// 1 386 bytes in section .XML
// 
// 1 386 bytes of CODE memory
//
//Errors: none
//Warnings: none

⌨️ 快捷键说明

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