diff options
Diffstat (limited to 'src/stm32lib/src/stm32f10x_adc.lst')
-rw-r--r-- | src/stm32lib/src/stm32f10x_adc.lst | 2584 |
1 files changed, 2584 insertions, 0 deletions
diff --git a/src/stm32lib/src/stm32f10x_adc.lst b/src/stm32lib/src/stm32f10x_adc.lst new file mode 100644 index 0000000..ef1caab --- /dev/null +++ b/src/stm32lib/src/stm32f10x_adc.lst @@ -0,0 +1,2584 @@ + 1 .syntax unified + 2 .cpu cortex-m3 + 3 .fpu softvfp + 4 .eabi_attribute 20, 1 + 5 .eabi_attribute 21, 1 + 6 .eabi_attribute 23, 3 + 7 .eabi_attribute 24, 1 + 8 .eabi_attribute 25, 1 + 9 .eabi_attribute 26, 1 + 10 .eabi_attribute 30, 4 + 11 .eabi_attribute 18, 4 + 12 .thumb + 13 .file "stm32f10x_adc.c" + 21 .Ltext0: + 22 .align 2 + 23 .global ADC_Init + 24 .thumb + 25 .thumb_func + 27 ADC_Init: + 28 .LFB24: + 29 .file 1 "stm32lib/src/stm32f10x_adc.c" + 1:stm32lib/src/stm32f10x_adc.c **** /******************** (C) COPYRIGHT 2008 STMicroelectronics ******************** + 2:stm32lib/src/stm32f10x_adc.c **** * File Name : stm32f10x_adc.c + 3:stm32lib/src/stm32f10x_adc.c **** * Author : MCD Application Team + 4:stm32lib/src/stm32f10x_adc.c **** * Version : V2.0.2 + 5:stm32lib/src/stm32f10x_adc.c **** * Date : 07/11/2008 + 6:stm32lib/src/stm32f10x_adc.c **** * Description : This file provides all the ADC firmware functions. + 7:stm32lib/src/stm32f10x_adc.c **** ******************************************************************************** + 8:stm32lib/src/stm32f10x_adc.c **** * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS + 9:stm32lib/src/stm32f10x_adc.c **** * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. + 10:stm32lib/src/stm32f10x_adc.c **** * AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT, + 11:stm32lib/src/stm32f10x_adc.c **** * INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE + 12:stm32lib/src/stm32f10x_adc.c **** * CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING + 13:stm32lib/src/stm32f10x_adc.c **** * INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. + 14:stm32lib/src/stm32f10x_adc.c **** *******************************************************************************/ + 15:stm32lib/src/stm32f10x_adc.c **** + 16:stm32lib/src/stm32f10x_adc.c **** /* Includes ------------------------------------------------------------------*/ + 17:stm32lib/src/stm32f10x_adc.c **** #include "stm32f10x_adc.h" + 18:stm32lib/src/stm32f10x_adc.c **** #include "stm32f10x_rcc.h" + 19:stm32lib/src/stm32f10x_adc.c **** + 20:stm32lib/src/stm32f10x_adc.c **** /* Private typedef -----------------------------------------------------------*/ + 21:stm32lib/src/stm32f10x_adc.c **** /* Private define ------------------------------------------------------------*/ + 22:stm32lib/src/stm32f10x_adc.c **** /* ADC DISCNUM mask */ + 23:stm32lib/src/stm32f10x_adc.c **** #define CR1_DISCNUM_Reset ((u32)0xFFFF1FFF) + 24:stm32lib/src/stm32f10x_adc.c **** + 25:stm32lib/src/stm32f10x_adc.c **** /* ADC DISCEN mask */ + 26:stm32lib/src/stm32f10x_adc.c **** #define CR1_DISCEN_Set ((u32)0x00000800) + 27:stm32lib/src/stm32f10x_adc.c **** #define CR1_DISCEN_Reset ((u32)0xFFFFF7FF) + 28:stm32lib/src/stm32f10x_adc.c **** + 29:stm32lib/src/stm32f10x_adc.c **** /* ADC JAUTO mask */ + 30:stm32lib/src/stm32f10x_adc.c **** #define CR1_JAUTO_Set ((u32)0x00000400) + 31:stm32lib/src/stm32f10x_adc.c **** #define CR1_JAUTO_Reset ((u32)0xFFFFFBFF) + 32:stm32lib/src/stm32f10x_adc.c **** + 33:stm32lib/src/stm32f10x_adc.c **** /* ADC JDISCEN mask */ + 34:stm32lib/src/stm32f10x_adc.c **** #define CR1_JDISCEN_Set ((u32)0x00001000) + 35:stm32lib/src/stm32f10x_adc.c **** #define CR1_JDISCEN_Reset ((u32)0xFFFFEFFF) + 36:stm32lib/src/stm32f10x_adc.c **** + 37:stm32lib/src/stm32f10x_adc.c **** /* ADC AWDCH mask */ + 38:stm32lib/src/stm32f10x_adc.c **** #define CR1_AWDCH_Reset ((u32)0xFFFFFFE0) + 39:stm32lib/src/stm32f10x_adc.c **** + 40:stm32lib/src/stm32f10x_adc.c **** /* ADC Analog watchdog enable mode mask */ + 41:stm32lib/src/stm32f10x_adc.c **** #define CR1_AWDMode_Reset ((u32)0xFF3FFDFF) + 42:stm32lib/src/stm32f10x_adc.c **** + 43:stm32lib/src/stm32f10x_adc.c **** /* CR1 register Mask */ + 44:stm32lib/src/stm32f10x_adc.c **** #define CR1_CLEAR_Mask ((u32)0xFFF0FEFF) + 45:stm32lib/src/stm32f10x_adc.c **** + 46:stm32lib/src/stm32f10x_adc.c **** /* ADC ADON mask */ + 47:stm32lib/src/stm32f10x_adc.c **** #define CR2_ADON_Set ((u32)0x00000001) + 48:stm32lib/src/stm32f10x_adc.c **** #define CR2_ADON_Reset ((u32)0xFFFFFFFE) + 49:stm32lib/src/stm32f10x_adc.c **** + 50:stm32lib/src/stm32f10x_adc.c **** /* ADC DMA mask */ + 51:stm32lib/src/stm32f10x_adc.c **** #define CR2_DMA_Set ((u32)0x00000100) + 52:stm32lib/src/stm32f10x_adc.c **** #define CR2_DMA_Reset ((u32)0xFFFFFEFF) + 53:stm32lib/src/stm32f10x_adc.c **** + 54:stm32lib/src/stm32f10x_adc.c **** /* ADC RSTCAL mask */ + 55:stm32lib/src/stm32f10x_adc.c **** #define CR2_RSTCAL_Set ((u32)0x00000008) + 56:stm32lib/src/stm32f10x_adc.c **** + 57:stm32lib/src/stm32f10x_adc.c **** /* ADC CAL mask */ + 58:stm32lib/src/stm32f10x_adc.c **** #define CR2_CAL_Set ((u32)0x00000004) + 59:stm32lib/src/stm32f10x_adc.c **** + 60:stm32lib/src/stm32f10x_adc.c **** /* ADC SWSTART mask */ + 61:stm32lib/src/stm32f10x_adc.c **** #define CR2_SWSTART_Set ((u32)0x00400000) + 62:stm32lib/src/stm32f10x_adc.c **** + 63:stm32lib/src/stm32f10x_adc.c **** /* ADC EXTTRIG mask */ + 64:stm32lib/src/stm32f10x_adc.c **** #define CR2_EXTTRIG_Set ((u32)0x00100000) + 65:stm32lib/src/stm32f10x_adc.c **** #define CR2_EXTTRIG_Reset ((u32)0xFFEFFFFF) + 66:stm32lib/src/stm32f10x_adc.c **** + 67:stm32lib/src/stm32f10x_adc.c **** /* ADC Software start mask */ + 68:stm32lib/src/stm32f10x_adc.c **** #define CR2_EXTTRIG_SWSTART_Set ((u32)0x00500000) + 69:stm32lib/src/stm32f10x_adc.c **** #define CR2_EXTTRIG_SWSTART_Reset ((u32)0xFFAFFFFF) + 70:stm32lib/src/stm32f10x_adc.c **** + 71:stm32lib/src/stm32f10x_adc.c **** /* ADC JEXTSEL mask */ + 72:stm32lib/src/stm32f10x_adc.c **** #define CR2_JEXTSEL_Reset ((u32)0xFFFF8FFF) + 73:stm32lib/src/stm32f10x_adc.c **** + 74:stm32lib/src/stm32f10x_adc.c **** /* ADC JEXTTRIG mask */ + 75:stm32lib/src/stm32f10x_adc.c **** #define CR2_JEXTTRIG_Set ((u32)0x00008000) + 76:stm32lib/src/stm32f10x_adc.c **** #define CR2_JEXTTRIG_Reset ((u32)0xFFFF7FFF) + 77:stm32lib/src/stm32f10x_adc.c **** + 78:stm32lib/src/stm32f10x_adc.c **** /* ADC JSWSTART mask */ + 79:stm32lib/src/stm32f10x_adc.c **** #define CR2_JSWSTART_Set ((u32)0x00200000) + 80:stm32lib/src/stm32f10x_adc.c **** + 81:stm32lib/src/stm32f10x_adc.c **** /* ADC injected software start mask */ + 82:stm32lib/src/stm32f10x_adc.c **** #define CR2_JEXTTRIG_JSWSTART_Set ((u32)0x00208000) + 83:stm32lib/src/stm32f10x_adc.c **** #define CR2_JEXTTRIG_JSWSTART_Reset ((u32)0xFFDF7FFF) + 84:stm32lib/src/stm32f10x_adc.c **** + 85:stm32lib/src/stm32f10x_adc.c **** /* ADC TSPD mask */ + 86:stm32lib/src/stm32f10x_adc.c **** #define CR2_TSVREFE_Set ((u32)0x00800000) + 87:stm32lib/src/stm32f10x_adc.c **** #define CR2_TSVREFE_Reset ((u32)0xFF7FFFFF) + 88:stm32lib/src/stm32f10x_adc.c **** + 89:stm32lib/src/stm32f10x_adc.c **** /* CR2 register Mask */ + 90:stm32lib/src/stm32f10x_adc.c **** #define CR2_CLEAR_Mask ((u32)0xFFF1F7FD) + 91:stm32lib/src/stm32f10x_adc.c **** + 92:stm32lib/src/stm32f10x_adc.c **** /* ADC SQx mask */ + 93:stm32lib/src/stm32f10x_adc.c **** #define SQR3_SQ_Set ((u32)0x0000001F) + 94:stm32lib/src/stm32f10x_adc.c **** #define SQR2_SQ_Set ((u32)0x0000001F) + 95:stm32lib/src/stm32f10x_adc.c **** #define SQR1_SQ_Set ((u32)0x0000001F) + 96:stm32lib/src/stm32f10x_adc.c **** + 97:stm32lib/src/stm32f10x_adc.c **** /* SQR1 register Mask */ + 98:stm32lib/src/stm32f10x_adc.c **** #define SQR1_CLEAR_Mask ((u32)0xFF0FFFFF) + 99:stm32lib/src/stm32f10x_adc.c **** + 100:stm32lib/src/stm32f10x_adc.c **** /* ADC JSQx mask */ + 101:stm32lib/src/stm32f10x_adc.c **** #define JSQR_JSQ_Set ((u32)0x0000001F) + 102:stm32lib/src/stm32f10x_adc.c **** + 103:stm32lib/src/stm32f10x_adc.c **** /* ADC JL mask */ + 104:stm32lib/src/stm32f10x_adc.c **** #define JSQR_JL_Set ((u32)0x00300000) + 105:stm32lib/src/stm32f10x_adc.c **** #define JSQR_JL_Reset ((u32)0xFFCFFFFF) + 106:stm32lib/src/stm32f10x_adc.c **** + 107:stm32lib/src/stm32f10x_adc.c **** /* ADC SMPx mask */ + 108:stm32lib/src/stm32f10x_adc.c **** #define SMPR1_SMP_Set ((u32)0x00000007) + 109:stm32lib/src/stm32f10x_adc.c **** #define SMPR2_SMP_Set ((u32)0x00000007) + 110:stm32lib/src/stm32f10x_adc.c **** + 111:stm32lib/src/stm32f10x_adc.c **** /* ADC JDRx registers offset */ + 112:stm32lib/src/stm32f10x_adc.c **** #define JDR_Offset ((u8)0x28) + 113:stm32lib/src/stm32f10x_adc.c **** + 114:stm32lib/src/stm32f10x_adc.c **** /* ADC1 DR register base address */ + 115:stm32lib/src/stm32f10x_adc.c **** #define DR_ADDRESS ((u32)0x4001244C) + 116:stm32lib/src/stm32f10x_adc.c **** + 117:stm32lib/src/stm32f10x_adc.c **** /* Private macro -------------------------------------------------------------*/ + 118:stm32lib/src/stm32f10x_adc.c **** /* Private variables ---------------------------------------------------------*/ + 119:stm32lib/src/stm32f10x_adc.c **** /* Private function prototypes -----------------------------------------------*/ + 120:stm32lib/src/stm32f10x_adc.c **** /* Private functions ---------------------------------------------------------*/ + 121:stm32lib/src/stm32f10x_adc.c **** + 122:stm32lib/src/stm32f10x_adc.c **** /******************************************************************************* + 123:stm32lib/src/stm32f10x_adc.c **** * Function Name : ADC_DeInit + 124:stm32lib/src/stm32f10x_adc.c **** * Description : Deinitializes the ADCx peripheral registers to their default + 125:stm32lib/src/stm32f10x_adc.c **** * reset values. + 126:stm32lib/src/stm32f10x_adc.c **** * Input : - ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. + 127:stm32lib/src/stm32f10x_adc.c **** * Output : None + 128:stm32lib/src/stm32f10x_adc.c **** * Return : None + 129:stm32lib/src/stm32f10x_adc.c **** *******************************************************************************/ + 130:stm32lib/src/stm32f10x_adc.c **** void ADC_DeInit(ADC_TypeDef* ADCx) + 131:stm32lib/src/stm32f10x_adc.c **** { + 132:stm32lib/src/stm32f10x_adc.c **** /* Check the parameters */ + 133:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_ADC_ALL_PERIPH(ADCx)); + 134:stm32lib/src/stm32f10x_adc.c **** + 135:stm32lib/src/stm32f10x_adc.c **** switch (*(u32*)&ADCx) + 136:stm32lib/src/stm32f10x_adc.c **** { + 137:stm32lib/src/stm32f10x_adc.c **** case ADC1_BASE: + 138:stm32lib/src/stm32f10x_adc.c **** /* Enable ADC1 reset state */ + 139:stm32lib/src/stm32f10x_adc.c **** RCC_APB2PeriphResetCmd(RCC_APB2Periph_ADC1, ENABLE); + 140:stm32lib/src/stm32f10x_adc.c **** /* Release ADC1 from reset state */ + 141:stm32lib/src/stm32f10x_adc.c **** RCC_APB2PeriphResetCmd(RCC_APB2Periph_ADC1, DISABLE); + 142:stm32lib/src/stm32f10x_adc.c **** break; + 143:stm32lib/src/stm32f10x_adc.c **** + 144:stm32lib/src/stm32f10x_adc.c **** case ADC2_BASE: + 145:stm32lib/src/stm32f10x_adc.c **** /* Enable ADC2 reset state */ + 146:stm32lib/src/stm32f10x_adc.c **** RCC_APB2PeriphResetCmd(RCC_APB2Periph_ADC2, ENABLE); + 147:stm32lib/src/stm32f10x_adc.c **** /* Release ADC2 from reset state */ + 148:stm32lib/src/stm32f10x_adc.c **** RCC_APB2PeriphResetCmd(RCC_APB2Periph_ADC2, DISABLE); + 149:stm32lib/src/stm32f10x_adc.c **** break; + 150:stm32lib/src/stm32f10x_adc.c **** + 151:stm32lib/src/stm32f10x_adc.c **** case ADC3_BASE: + 152:stm32lib/src/stm32f10x_adc.c **** /* Enable ADC3 reset state */ + 153:stm32lib/src/stm32f10x_adc.c **** RCC_APB2PeriphResetCmd(RCC_APB2Periph_ADC3, ENABLE); + 154:stm32lib/src/stm32f10x_adc.c **** /* Release ADC3 from reset state */ + 155:stm32lib/src/stm32f10x_adc.c **** RCC_APB2PeriphResetCmd(RCC_APB2Periph_ADC3, DISABLE); + 156:stm32lib/src/stm32f10x_adc.c **** break; + 157:stm32lib/src/stm32f10x_adc.c **** + 158:stm32lib/src/stm32f10x_adc.c **** default: + 159:stm32lib/src/stm32f10x_adc.c **** break; + 160:stm32lib/src/stm32f10x_adc.c **** } + 161:stm32lib/src/stm32f10x_adc.c **** } + 162:stm32lib/src/stm32f10x_adc.c **** + 163:stm32lib/src/stm32f10x_adc.c **** /******************************************************************************* + 164:stm32lib/src/stm32f10x_adc.c **** * Function Name : ADC_Init + 165:stm32lib/src/stm32f10x_adc.c **** * Description : Initializes the ADCx peripheral according to the specified parameters + 166:stm32lib/src/stm32f10x_adc.c **** * in the ADC_InitStruct. + 167:stm32lib/src/stm32f10x_adc.c **** * Input : - ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. + 168:stm32lib/src/stm32f10x_adc.c **** * - ADC_InitStruct: pointer to an ADC_InitTypeDef structure that + 169:stm32lib/src/stm32f10x_adc.c **** * contains the configuration information for the specified + 170:stm32lib/src/stm32f10x_adc.c **** * ADC peripheral. + 171:stm32lib/src/stm32f10x_adc.c **** * Output : None + 172:stm32lib/src/stm32f10x_adc.c **** * Return : None + 173:stm32lib/src/stm32f10x_adc.c **** ******************************************************************************/ + 174:stm32lib/src/stm32f10x_adc.c **** void ADC_Init(ADC_TypeDef* ADCx, ADC_InitTypeDef* ADC_InitStruct) + 175:stm32lib/src/stm32f10x_adc.c **** { + 30 .loc 1 175 0 + 31 @ args = 0, pretend = 0, frame = 0 + 32 @ frame_needed = 0, uses_anonymous_args = 0 + 33 .LVL0: + 176:stm32lib/src/stm32f10x_adc.c **** u32 tmpreg1 = 0; + 177:stm32lib/src/stm32f10x_adc.c **** u8 tmpreg2 = 0; + 178:stm32lib/src/stm32f10x_adc.c **** + 179:stm32lib/src/stm32f10x_adc.c **** /* Check the parameters */ + 180:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_ADC_ALL_PERIPH(ADCx)); + 181:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_ADC_MODE(ADC_InitStruct->ADC_Mode)); + 182:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_FUNCTIONAL_STATE(ADC_InitStruct->ADC_ScanConvMode)); + 183:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_FUNCTIONAL_STATE(ADC_InitStruct->ADC_ContinuousConvMode)); + 184:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_ADC_EXT_TRIG(ADC_InitStruct->ADC_ExternalTrigConv)); + 185:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_ADC_DATA_ALIGN(ADC_InitStruct->ADC_DataAlign)); + 186:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_ADC_REGULAR_LENGTH(ADC_InitStruct->ADC_NbrOfChannel)); + 187:stm32lib/src/stm32f10x_adc.c **** + 188:stm32lib/src/stm32f10x_adc.c **** /*---------------------------- ADCx CR1 Configuration -----------------*/ + 189:stm32lib/src/stm32f10x_adc.c **** /* Get the ADCx CR1 value */ + 190:stm32lib/src/stm32f10x_adc.c **** tmpreg1 = ADCx->CR1; + 34 .loc 1 190 0 + 35 0000 4368 ldr r3, [r0, #4] + 36 .LVL1: + 191:stm32lib/src/stm32f10x_adc.c **** /* Clear DUALMOD and SCAN bits */ + 192:stm32lib/src/stm32f10x_adc.c **** tmpreg1 &= CR1_CLEAR_Mask; + 193:stm32lib/src/stm32f10x_adc.c **** /* Configure ADCx: Dual mode and scan conversion mode */ + 194:stm32lib/src/stm32f10x_adc.c **** /* Set DUALMOD bits according to ADC_Mode value */ + 195:stm32lib/src/stm32f10x_adc.c **** /* Set SCAN bit according to ADC_ScanConvMode value */ + 196:stm32lib/src/stm32f10x_adc.c **** tmpreg1 |= (u32)(ADC_InitStruct->ADC_Mode | ((u32)ADC_InitStruct->ADC_ScanConvMode << 8)); + 37 .loc 1 196 0 + 38 0002 0A68 ldr r2, [r1, #0] + 39 0004 23F47023 bic r3, r3, #983040 + 40 .LVL2: + 41 0008 23F48073 bic r3, r3, #256 + 42 000c 1343 orrs r3, r3, r2 + 43 000e 0A79 ldrb r2, [r1, #4] @ zero_extendqisi2 + 44 .loc 1 175 0 + 45 0010 10B5 push {r4, lr} + 46 .LCFI0: + 47 .loc 1 196 0 + 48 0012 43EA0223 orr r3, r3, r2, lsl #8 + 49 .LVL3: + 197:stm32lib/src/stm32f10x_adc.c **** /* Write to ADCx CR1 */ + 198:stm32lib/src/stm32f10x_adc.c **** ADCx->CR1 = tmpreg1; + 50 .loc 1 198 0 + 51 0016 4360 str r3, [r0, #4] + 199:stm32lib/src/stm32f10x_adc.c **** + 200:stm32lib/src/stm32f10x_adc.c **** /*---------------------------- ADCx CR2 Configuration -----------------*/ + 201:stm32lib/src/stm32f10x_adc.c **** /* Get the ADCx CR2 value */ + 202:stm32lib/src/stm32f10x_adc.c **** tmpreg1 = ADCx->CR2; + 203:stm32lib/src/stm32f10x_adc.c **** /* Clear CONT, ALIGN and EXTSEL bits */ + 204:stm32lib/src/stm32f10x_adc.c **** tmpreg1 &= CR2_CLEAR_Mask; + 205:stm32lib/src/stm32f10x_adc.c **** /* Configure ADCx: external trigger event and continuous conversion mode */ + 206:stm32lib/src/stm32f10x_adc.c **** /* Set ALIGN bit according to ADC_DataAlign value */ + 207:stm32lib/src/stm32f10x_adc.c **** /* Set EXTSEL bits according to ADC_ExternalTrigConv value */ + 208:stm32lib/src/stm32f10x_adc.c **** /* Set CONT bit according to ADC_ContinuousConvMode value */ + 209:stm32lib/src/stm32f10x_adc.c **** tmpreg1 |= (u32)(ADC_InitStruct->ADC_DataAlign | ADC_InitStruct->ADC_ExternalTrigConv | + 52 .loc 1 209 0 + 53 0018 CB68 ldr r3, [r1, #12] + 54 .LVL4: + 55 001a 8A68 ldr r2, [r1, #8] + 56 .loc 1 202 0 + 57 001c 8468 ldr r4, [r0, #8] + 58 .LVL5: + 59 .loc 1 209 0 + 60 001e 1A43 orrs r2, r2, r3 + 61 0020 084B ldr r3, .L3 + 62 0022 04EA0303 and r3, r4, r3 + 63 0026 1A43 orrs r2, r2, r3 + 64 0028 4B79 ldrb r3, [r1, #5] @ zero_extendqisi2 + 65 002a 42EA4302 orr r2, r2, r3, lsl #1 + 66 .LVL6: + 210:stm32lib/src/stm32f10x_adc.c **** ((u32)ADC_InitStruct->ADC_ContinuousConvMode << 1)); + 211:stm32lib/src/stm32f10x_adc.c **** /* Write to ADCx CR2 */ + 212:stm32lib/src/stm32f10x_adc.c **** ADCx->CR2 = tmpreg1; + 67 .loc 1 212 0 + 68 002e 8260 str r2, [r0, #8] + 213:stm32lib/src/stm32f10x_adc.c **** + 214:stm32lib/src/stm32f10x_adc.c **** /*---------------------------- ADCx SQR1 Configuration -----------------*/ + 215:stm32lib/src/stm32f10x_adc.c **** /* Get the ADCx SQR1 value */ + 216:stm32lib/src/stm32f10x_adc.c **** tmpreg1 = ADCx->SQR1; + 217:stm32lib/src/stm32f10x_adc.c **** /* Clear L bits */ + 218:stm32lib/src/stm32f10x_adc.c **** tmpreg1 &= SQR1_CLEAR_Mask; + 219:stm32lib/src/stm32f10x_adc.c **** /* Configure ADCx: regular channel sequence length */ + 220:stm32lib/src/stm32f10x_adc.c **** /* Set L bits according to ADC_NbrOfChannel value */ + 221:stm32lib/src/stm32f10x_adc.c **** tmpreg2 |= (ADC_InitStruct->ADC_NbrOfChannel - 1); + 222:stm32lib/src/stm32f10x_adc.c **** tmpreg1 |= ((u32)tmpreg2 << 20); + 69 .loc 1 222 0 + 70 0030 0B7C ldrb r3, [r1, #16] @ zero_extendqisi2 + 71 .loc 1 216 0 + 72 0032 C26A ldr r2, [r0, #44] + 73 .LVL7: + 74 .loc 1 222 0 + 75 0034 013B subs r3, r3, #1 + 76 .loc 1 218 0 + 77 0036 22F47002 bic r2, r2, #15728640 + 78 .LVL8: + 79 .loc 1 222 0 + 80 003a DBB2 uxtb r3, r3 + 81 003c 42EA0352 orr r2, r2, r3, lsl #20 + 82 .LVL9: + 223:stm32lib/src/stm32f10x_adc.c **** /* Write to ADCx SQR1 */ + 224:stm32lib/src/stm32f10x_adc.c **** ADCx->SQR1 = tmpreg1; + 83 .loc 1 224 0 + 84 0040 C262 str r2, [r0, #44] + 225:stm32lib/src/stm32f10x_adc.c **** } + 85 .loc 1 225 0 + 86 0042 10BD pop {r4, pc} + 87 .L4: + 88 .align 2 + 89 .L3: + 90 0044 FDF7F1FF .word -919555 + 91 .LFE24: + 93 .align 2 + 94 .global ADC_StructInit + 95 .thumb + 96 .thumb_func + 98 ADC_StructInit: + 99 .LFB25: + 226:stm32lib/src/stm32f10x_adc.c **** + 227:stm32lib/src/stm32f10x_adc.c **** /******************************************************************************* + 228:stm32lib/src/stm32f10x_adc.c **** * Function Name : ADC_StructInit + 229:stm32lib/src/stm32f10x_adc.c **** * Description : Fills each ADC_InitStruct member with its default value. + 230:stm32lib/src/stm32f10x_adc.c **** * Input : ADC_InitStruct : pointer to an ADC_InitTypeDef structure + 231:stm32lib/src/stm32f10x_adc.c **** * which will be initialized. + 232:stm32lib/src/stm32f10x_adc.c **** * Output : None + 233:stm32lib/src/stm32f10x_adc.c **** * Return : None + 234:stm32lib/src/stm32f10x_adc.c **** *******************************************************************************/ + 235:stm32lib/src/stm32f10x_adc.c **** void ADC_StructInit(ADC_InitTypeDef* ADC_InitStruct) + 236:stm32lib/src/stm32f10x_adc.c **** { + 100 .loc 1 236 0 + 101 @ args = 0, pretend = 0, frame = 0 + 102 @ frame_needed = 0, uses_anonymous_args = 0 + 103 @ link register save eliminated. + 104 .LVL10: + 237:stm32lib/src/stm32f10x_adc.c **** /* Reset ADC init structure parameters values */ + 238:stm32lib/src/stm32f10x_adc.c **** /* Initialize the ADC_Mode member */ + 239:stm32lib/src/stm32f10x_adc.c **** ADC_InitStruct->ADC_Mode = ADC_Mode_Independent; + 105 .loc 1 239 0 + 106 0048 0023 movs r3, #0 + 107 004a 0360 str r3, [r0, #0] + 240:stm32lib/src/stm32f10x_adc.c **** + 241:stm32lib/src/stm32f10x_adc.c **** /* initialize the ADC_ScanConvMode member */ + 242:stm32lib/src/stm32f10x_adc.c **** ADC_InitStruct->ADC_ScanConvMode = DISABLE; + 108 .loc 1 242 0 + 109 004c 0371 strb r3, [r0, #4] + 243:stm32lib/src/stm32f10x_adc.c **** + 244:stm32lib/src/stm32f10x_adc.c **** /* Initialize the ADC_ContinuousConvMode member */ + 245:stm32lib/src/stm32f10x_adc.c **** ADC_InitStruct->ADC_ContinuousConvMode = DISABLE; + 110 .loc 1 245 0 + 111 004e 4371 strb r3, [r0, #5] + 246:stm32lib/src/stm32f10x_adc.c **** + 247:stm32lib/src/stm32f10x_adc.c **** /* Initialize the ADC_ExternalTrigConv member */ + 248:stm32lib/src/stm32f10x_adc.c **** ADC_InitStruct->ADC_ExternalTrigConv = ADC_ExternalTrigConv_T1_CC1; + 112 .loc 1 248 0 + 113 0050 8360 str r3, [r0, #8] + 249:stm32lib/src/stm32f10x_adc.c **** + 250:stm32lib/src/stm32f10x_adc.c **** /* Initialize the ADC_DataAlign member */ + 251:stm32lib/src/stm32f10x_adc.c **** ADC_InitStruct->ADC_DataAlign = ADC_DataAlign_Right; + 114 .loc 1 251 0 + 115 0052 C360 str r3, [r0, #12] + 252:stm32lib/src/stm32f10x_adc.c **** + 253:stm32lib/src/stm32f10x_adc.c **** /* Initialize the ADC_NbrOfChannel member */ + 254:stm32lib/src/stm32f10x_adc.c **** ADC_InitStruct->ADC_NbrOfChannel = 1; + 116 .loc 1 254 0 + 117 0054 0133 adds r3, r3, #1 + 118 0056 0374 strb r3, [r0, #16] + 255:stm32lib/src/stm32f10x_adc.c **** } + 119 .loc 1 255 0 + 120 0058 7047 bx lr + 121 .LFE25: + 123 005a 00BF .align 2 + 124 .global ADC_Cmd + 125 .thumb + 126 .thumb_func + 128 ADC_Cmd: + 129 .LFB26: + 256:stm32lib/src/stm32f10x_adc.c **** + 257:stm32lib/src/stm32f10x_adc.c **** /******************************************************************************* + 258:stm32lib/src/stm32f10x_adc.c **** * Function Name : ADC_Cmd + 259:stm32lib/src/stm32f10x_adc.c **** * Description : Enables or disables the specified ADC peripheral. + 260:stm32lib/src/stm32f10x_adc.c **** * Input : - ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. + 261:stm32lib/src/stm32f10x_adc.c **** * - NewState: new state of the ADCx peripheral. This parameter + 262:stm32lib/src/stm32f10x_adc.c **** * can be: ENABLE or DISABLE. + 263:stm32lib/src/stm32f10x_adc.c **** * Output : None + 264:stm32lib/src/stm32f10x_adc.c **** * Return : None + 265:stm32lib/src/stm32f10x_adc.c **** *******************************************************************************/ + 266:stm32lib/src/stm32f10x_adc.c **** void ADC_Cmd(ADC_TypeDef* ADCx, FunctionalState NewState) + 267:stm32lib/src/stm32f10x_adc.c **** { + 130 .loc 1 267 0 + 131 @ args = 0, pretend = 0, frame = 0 + 132 @ frame_needed = 0, uses_anonymous_args = 0 + 133 @ link register save eliminated. + 134 .LVL11: + 268:stm32lib/src/stm32f10x_adc.c **** /* Check the parameters */ + 269:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_ADC_ALL_PERIPH(ADCx)); + 270:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_FUNCTIONAL_STATE(NewState)); + 271:stm32lib/src/stm32f10x_adc.c **** + 272:stm32lib/src/stm32f10x_adc.c **** if (NewState != DISABLE) + 135 .loc 1 272 0 + 136 005c 19B1 cbz r1, .L8 + 273:stm32lib/src/stm32f10x_adc.c **** { + 274:stm32lib/src/stm32f10x_adc.c **** /* Set the ADON bit to wake up the ADC from power down mode */ + 275:stm32lib/src/stm32f10x_adc.c **** ADCx->CR2 |= CR2_ADON_Set; + 137 .loc 1 275 0 + 138 005e 8368 ldr r3, [r0, #8] + 139 0060 43F00103 orr r3, r3, #1 + 140 0064 02E0 b .L11 + 141 .L8: + 276:stm32lib/src/stm32f10x_adc.c **** } + 277:stm32lib/src/stm32f10x_adc.c **** else + 278:stm32lib/src/stm32f10x_adc.c **** { + 279:stm32lib/src/stm32f10x_adc.c **** /* Disable the selected ADC peripheral */ + 280:stm32lib/src/stm32f10x_adc.c **** ADCx->CR2 &= CR2_ADON_Reset; + 142 .loc 1 280 0 + 143 0066 8368 ldr r3, [r0, #8] + 144 0068 23F00103 bic r3, r3, #1 + 145 .L11: + 146 006c 8360 str r3, [r0, #8] + 281:stm32lib/src/stm32f10x_adc.c **** } + 282:stm32lib/src/stm32f10x_adc.c **** } + 147 .loc 1 282 0 + 148 006e 7047 bx lr + 149 .LFE26: + 151 .align 2 + 152 .global ADC_DMACmd + 153 .thumb + 154 .thumb_func + 156 ADC_DMACmd: + 157 .LFB27: + 283:stm32lib/src/stm32f10x_adc.c **** + 284:stm32lib/src/stm32f10x_adc.c **** /******************************************************************************* + 285:stm32lib/src/stm32f10x_adc.c **** * Function Name : ADC_DMACmd + 286:stm32lib/src/stm32f10x_adc.c **** * Description : Enables or disables the specified ADC DMA request. + 287:stm32lib/src/stm32f10x_adc.c **** * Input : - ADCx: where x can be 1 or 3 to select the ADC peripheral. + 288:stm32lib/src/stm32f10x_adc.c **** * Note: ADC2 hasn't a DMA capability. + 289:stm32lib/src/stm32f10x_adc.c **** * - NewState: new state of the selected ADC DMA transfer. + 290:stm32lib/src/stm32f10x_adc.c **** * This parameter can be: ENABLE or DISABLE. + 291:stm32lib/src/stm32f10x_adc.c **** * Output : None + 292:stm32lib/src/stm32f10x_adc.c **** * Return : None + 293:stm32lib/src/stm32f10x_adc.c **** *******************************************************************************/ + 294:stm32lib/src/stm32f10x_adc.c **** void ADC_DMACmd(ADC_TypeDef* ADCx, FunctionalState NewState) + 295:stm32lib/src/stm32f10x_adc.c **** { + 158 .loc 1 295 0 + 159 @ args = 0, pretend = 0, frame = 0 + 160 @ frame_needed = 0, uses_anonymous_args = 0 + 161 @ link register save eliminated. + 162 .LVL12: + 296:stm32lib/src/stm32f10x_adc.c **** /* Check the parameters */ + 297:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_ADC_DMA_PERIPH(ADCx)); + 298:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_FUNCTIONAL_STATE(NewState)); + 299:stm32lib/src/stm32f10x_adc.c **** + 300:stm32lib/src/stm32f10x_adc.c **** if (NewState != DISABLE) + 163 .loc 1 300 0 + 164 0070 19B1 cbz r1, .L13 + 301:stm32lib/src/stm32f10x_adc.c **** { + 302:stm32lib/src/stm32f10x_adc.c **** /* Enable the selected ADC DMA request */ + 303:stm32lib/src/stm32f10x_adc.c **** ADCx->CR2 |= CR2_DMA_Set; + 165 .loc 1 303 0 + 166 0072 8368 ldr r3, [r0, #8] + 167 0074 43F48073 orr r3, r3, #256 + 168 0078 02E0 b .L16 + 169 .L13: + 304:stm32lib/src/stm32f10x_adc.c **** } + 305:stm32lib/src/stm32f10x_adc.c **** else + 306:stm32lib/src/stm32f10x_adc.c **** { + 307:stm32lib/src/stm32f10x_adc.c **** /* Disable the selected ADC DMA request */ + 308:stm32lib/src/stm32f10x_adc.c **** ADCx->CR2 &= CR2_DMA_Reset; + 170 .loc 1 308 0 + 171 007a 8368 ldr r3, [r0, #8] + 172 007c 23F48073 bic r3, r3, #256 + 173 .L16: + 174 0080 8360 str r3, [r0, #8] + 309:stm32lib/src/stm32f10x_adc.c **** } + 310:stm32lib/src/stm32f10x_adc.c **** } + 175 .loc 1 310 0 + 176 0082 7047 bx lr + 177 .LFE27: + 179 .align 2 + 180 .global ADC_ITConfig + 181 .thumb + 182 .thumb_func + 184 ADC_ITConfig: + 185 .LFB28: + 311:stm32lib/src/stm32f10x_adc.c **** + 312:stm32lib/src/stm32f10x_adc.c **** /******************************************************************************* + 313:stm32lib/src/stm32f10x_adc.c **** * Function Name : ADC_ITConfig + 314:stm32lib/src/stm32f10x_adc.c **** * Description : Enables or disables the specified ADC interrupts. + 315:stm32lib/src/stm32f10x_adc.c **** * Input : - ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. + 316:stm32lib/src/stm32f10x_adc.c **** * - ADC_IT: specifies the ADC interrupt sources to be enabled + 317:stm32lib/src/stm32f10x_adc.c **** * or disabled. + 318:stm32lib/src/stm32f10x_adc.c **** * This parameter can be any combination of the following values: + 319:stm32lib/src/stm32f10x_adc.c **** * - ADC_IT_EOC: End of conversion interrupt mask + 320:stm32lib/src/stm32f10x_adc.c **** * - ADC_IT_AWD: Analog watchdog interrupt mask + 321:stm32lib/src/stm32f10x_adc.c **** * - ADC_IT_JEOC: End of injected conversion interrupt mask + 322:stm32lib/src/stm32f10x_adc.c **** * - NewState: new state of the specified ADC interrupts. + 323:stm32lib/src/stm32f10x_adc.c **** * This parameter can be: ENABLE or DISABLE. + 324:stm32lib/src/stm32f10x_adc.c **** * Output : None + 325:stm32lib/src/stm32f10x_adc.c **** * Return : None + 326:stm32lib/src/stm32f10x_adc.c **** *******************************************************************************/ + 327:stm32lib/src/stm32f10x_adc.c **** void ADC_ITConfig(ADC_TypeDef* ADCx, u16 ADC_IT, FunctionalState NewState) + 328:stm32lib/src/stm32f10x_adc.c **** { + 186 .loc 1 328 0 + 187 @ args = 0, pretend = 0, frame = 0 + 188 @ frame_needed = 0, uses_anonymous_args = 0 + 189 @ link register save eliminated. + 190 .LVL13: + 329:stm32lib/src/stm32f10x_adc.c **** u8 itmask = 0; + 330:stm32lib/src/stm32f10x_adc.c **** + 331:stm32lib/src/stm32f10x_adc.c **** /* Check the parameters */ + 332:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_ADC_ALL_PERIPH(ADCx)); + 333:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_FUNCTIONAL_STATE(NewState)); + 334:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_ADC_IT(ADC_IT)); + 335:stm32lib/src/stm32f10x_adc.c **** + 336:stm32lib/src/stm32f10x_adc.c **** /* Get the ADC IT index */ + 337:stm32lib/src/stm32f10x_adc.c **** itmask = (u8)ADC_IT; + 191 .loc 1 337 0 + 192 0084 C9B2 uxtb r1, r1 + 193 .LVL14: + 338:stm32lib/src/stm32f10x_adc.c **** + 339:stm32lib/src/stm32f10x_adc.c **** if (NewState != DISABLE) + 194 .loc 1 339 0 + 195 0086 1AB1 cbz r2, .L18 + 340:stm32lib/src/stm32f10x_adc.c **** { + 341:stm32lib/src/stm32f10x_adc.c **** /* Enable the selected ADC interrupts */ + 342:stm32lib/src/stm32f10x_adc.c **** ADCx->CR1 |= itmask; + 196 .loc 1 342 0 + 197 0088 4368 ldr r3, [r0, #4] + 198 008a 41EA0303 orr r3, r1, r3 + 199 008e 02E0 b .L21 + 200 .L18: + 343:stm32lib/src/stm32f10x_adc.c **** } + 344:stm32lib/src/stm32f10x_adc.c **** else + 345:stm32lib/src/stm32f10x_adc.c **** { + 346:stm32lib/src/stm32f10x_adc.c **** /* Disable the selected ADC interrupts */ + 347:stm32lib/src/stm32f10x_adc.c **** ADCx->CR1 &= (~(u32)itmask); + 201 .loc 1 347 0 + 202 0090 4368 ldr r3, [r0, #4] + 203 0092 23EA0103 bic r3, r3, r1 + 204 .L21: + 205 0096 4360 str r3, [r0, #4] + 348:stm32lib/src/stm32f10x_adc.c **** } + 349:stm32lib/src/stm32f10x_adc.c **** } + 206 .loc 1 349 0 + 207 0098 7047 bx lr + 208 .LFE28: + 210 009a 00BF .align 2 + 211 .global ADC_ResetCalibration + 212 .thumb + 213 .thumb_func + 215 ADC_ResetCalibration: + 216 .LFB29: + 350:stm32lib/src/stm32f10x_adc.c **** + 351:stm32lib/src/stm32f10x_adc.c **** /******************************************************************************* + 352:stm32lib/src/stm32f10x_adc.c **** * Function Name : ADC_ResetCalibration + 353:stm32lib/src/stm32f10x_adc.c **** * Description : Resets the selected ADC calibration registers. + 354:stm32lib/src/stm32f10x_adc.c **** * Input : - ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. + 355:stm32lib/src/stm32f10x_adc.c **** * Output : None + 356:stm32lib/src/stm32f10x_adc.c **** * Return : None + 357:stm32lib/src/stm32f10x_adc.c **** *******************************************************************************/ + 358:stm32lib/src/stm32f10x_adc.c **** void ADC_ResetCalibration(ADC_TypeDef* ADCx) + 359:stm32lib/src/stm32f10x_adc.c **** { + 217 .loc 1 359 0 + 218 @ args = 0, pretend = 0, frame = 0 + 219 @ frame_needed = 0, uses_anonymous_args = 0 + 220 @ link register save eliminated. + 221 .LVL15: + 360:stm32lib/src/stm32f10x_adc.c **** /* Check the parameters */ + 361:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_ADC_ALL_PERIPH(ADCx)); + 362:stm32lib/src/stm32f10x_adc.c **** + 363:stm32lib/src/stm32f10x_adc.c **** /* Resets the selected ADC calibartion registers */ + 364:stm32lib/src/stm32f10x_adc.c **** ADCx->CR2 |= CR2_RSTCAL_Set; + 222 .loc 1 364 0 + 223 009c 8368 ldr r3, [r0, #8] + 224 009e 43F00803 orr r3, r3, #8 + 225 00a2 8360 str r3, [r0, #8] + 365:stm32lib/src/stm32f10x_adc.c **** } + 226 .loc 1 365 0 + 227 00a4 7047 bx lr + 228 .LFE29: + 230 00a6 00BF .align 2 + 231 .global ADC_GetResetCalibrationStatus + 232 .thumb + 233 .thumb_func + 235 ADC_GetResetCalibrationStatus: + 236 .LFB30: + 366:stm32lib/src/stm32f10x_adc.c **** + 367:stm32lib/src/stm32f10x_adc.c **** /******************************************************************************* + 368:stm32lib/src/stm32f10x_adc.c **** * Function Name : ADC_GetResetCalibrationStatus + 369:stm32lib/src/stm32f10x_adc.c **** * Description : Gets the selected ADC reset calibration registers status. + 370:stm32lib/src/stm32f10x_adc.c **** * Input : - ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. + 371:stm32lib/src/stm32f10x_adc.c **** * Output : None + 372:stm32lib/src/stm32f10x_adc.c **** * Return : The new state of ADC reset calibration registers (SET or RESET). + 373:stm32lib/src/stm32f10x_adc.c **** *******************************************************************************/ + 374:stm32lib/src/stm32f10x_adc.c **** FlagStatus ADC_GetResetCalibrationStatus(ADC_TypeDef* ADCx) + 375:stm32lib/src/stm32f10x_adc.c **** { + 237 .loc 1 375 0 + 238 @ args = 0, pretend = 0, frame = 0 + 239 @ frame_needed = 0, uses_anonymous_args = 0 + 240 @ link register save eliminated. + 241 .LVL16: + 376:stm32lib/src/stm32f10x_adc.c **** FlagStatus bitstatus = RESET; + 377:stm32lib/src/stm32f10x_adc.c **** + 378:stm32lib/src/stm32f10x_adc.c **** /* Check the parameters */ + 379:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_ADC_ALL_PERIPH(ADCx)); + 380:stm32lib/src/stm32f10x_adc.c **** + 381:stm32lib/src/stm32f10x_adc.c **** /* Check the status of RSTCAL bit */ + 382:stm32lib/src/stm32f10x_adc.c **** if ((ADCx->CR2 & CR2_RSTCAL_Set) != (u32)RESET) + 242 .loc 1 382 0 + 243 00a8 8068 ldr r0, [r0, #8] + 244 .LVL17: + 383:stm32lib/src/stm32f10x_adc.c **** { + 384:stm32lib/src/stm32f10x_adc.c **** /* RSTCAL bit is set */ + 385:stm32lib/src/stm32f10x_adc.c **** bitstatus = SET; + 386:stm32lib/src/stm32f10x_adc.c **** } + 387:stm32lib/src/stm32f10x_adc.c **** else + 388:stm32lib/src/stm32f10x_adc.c **** { + 389:stm32lib/src/stm32f10x_adc.c **** /* RSTCAL bit is reset */ + 390:stm32lib/src/stm32f10x_adc.c **** bitstatus = RESET; + 391:stm32lib/src/stm32f10x_adc.c **** } + 392:stm32lib/src/stm32f10x_adc.c **** + 393:stm32lib/src/stm32f10x_adc.c **** /* Return the RSTCAL bit status */ + 394:stm32lib/src/stm32f10x_adc.c **** return bitstatus; + 395:stm32lib/src/stm32f10x_adc.c **** } + 245 .loc 1 395 0 + 246 00aa C0F3C000 ubfx r0, r0, #3, #1 + 247 00ae 7047 bx lr + 248 .LFE30: + 250 .align 2 + 251 .global ADC_StartCalibration + 252 .thumb + 253 .thumb_func + 255 ADC_StartCalibration: + 256 .LFB31: + 396:stm32lib/src/stm32f10x_adc.c **** + 397:stm32lib/src/stm32f10x_adc.c **** /******************************************************************************* + 398:stm32lib/src/stm32f10x_adc.c **** * Function Name : ADC_StartCalibration + 399:stm32lib/src/stm32f10x_adc.c **** * Description : Starts the selected ADC calibration process. + 400:stm32lib/src/stm32f10x_adc.c **** * Input : - ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. + 401:stm32lib/src/stm32f10x_adc.c **** * Output : None + 402:stm32lib/src/stm32f10x_adc.c **** * Return : None + 403:stm32lib/src/stm32f10x_adc.c **** *******************************************************************************/ + 404:stm32lib/src/stm32f10x_adc.c **** void ADC_StartCalibration(ADC_TypeDef* ADCx) + 405:stm32lib/src/stm32f10x_adc.c **** { + 257 .loc 1 405 0 + 258 @ args = 0, pretend = 0, frame = 0 + 259 @ frame_needed = 0, uses_anonymous_args = 0 + 260 @ link register save eliminated. + 261 .LVL18: + 406:stm32lib/src/stm32f10x_adc.c **** /* Check the parameters */ + 407:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_ADC_ALL_PERIPH(ADCx)); + 408:stm32lib/src/stm32f10x_adc.c **** + 409:stm32lib/src/stm32f10x_adc.c **** /* Enable the selected ADC calibration process */ + 410:stm32lib/src/stm32f10x_adc.c **** ADCx->CR2 |= CR2_CAL_Set; + 262 .loc 1 410 0 + 263 00b0 8368 ldr r3, [r0, #8] + 264 00b2 43F00403 orr r3, r3, #4 + 265 00b6 8360 str r3, [r0, #8] + 411:stm32lib/src/stm32f10x_adc.c **** } + 266 .loc 1 411 0 + 267 00b8 7047 bx lr + 268 .LFE31: + 270 00ba 00BF .align 2 + 271 .global ADC_GetCalibrationStatus + 272 .thumb + 273 .thumb_func + 275 ADC_GetCalibrationStatus: + 276 .LFB32: + 412:stm32lib/src/stm32f10x_adc.c **** + 413:stm32lib/src/stm32f10x_adc.c **** /******************************************************************************* + 414:stm32lib/src/stm32f10x_adc.c **** * Function Name : ADC_GetCalibrationStatus + 415:stm32lib/src/stm32f10x_adc.c **** * Description : Gets the selected ADC calibration status. + 416:stm32lib/src/stm32f10x_adc.c **** * Input : - ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. + 417:stm32lib/src/stm32f10x_adc.c **** * Output : None + 418:stm32lib/src/stm32f10x_adc.c **** * Return : The new state of ADC calibration (SET or RESET). + 419:stm32lib/src/stm32f10x_adc.c **** *******************************************************************************/ + 420:stm32lib/src/stm32f10x_adc.c **** FlagStatus ADC_GetCalibrationStatus(ADC_TypeDef* ADCx) + 421:stm32lib/src/stm32f10x_adc.c **** { + 277 .loc 1 421 0 + 278 @ args = 0, pretend = 0, frame = 0 + 279 @ frame_needed = 0, uses_anonymous_args = 0 + 280 @ link register save eliminated. + 281 .LVL19: + 422:stm32lib/src/stm32f10x_adc.c **** FlagStatus bitstatus = RESET; + 423:stm32lib/src/stm32f10x_adc.c **** + 424:stm32lib/src/stm32f10x_adc.c **** /* Check the parameters */ + 425:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_ADC_ALL_PERIPH(ADCx)); + 426:stm32lib/src/stm32f10x_adc.c **** + 427:stm32lib/src/stm32f10x_adc.c **** /* Check the status of CAL bit */ + 428:stm32lib/src/stm32f10x_adc.c **** if ((ADCx->CR2 & CR2_CAL_Set) != (u32)RESET) + 282 .loc 1 428 0 + 283 00bc 8068 ldr r0, [r0, #8] + 284 .LVL20: + 429:stm32lib/src/stm32f10x_adc.c **** { + 430:stm32lib/src/stm32f10x_adc.c **** /* CAL bit is set: calibration on going */ + 431:stm32lib/src/stm32f10x_adc.c **** bitstatus = SET; + 432:stm32lib/src/stm32f10x_adc.c **** } + 433:stm32lib/src/stm32f10x_adc.c **** else + 434:stm32lib/src/stm32f10x_adc.c **** { + 435:stm32lib/src/stm32f10x_adc.c **** /* CAL bit is reset: end of calibration */ + 436:stm32lib/src/stm32f10x_adc.c **** bitstatus = RESET; + 437:stm32lib/src/stm32f10x_adc.c **** } + 438:stm32lib/src/stm32f10x_adc.c **** + 439:stm32lib/src/stm32f10x_adc.c **** /* Return the CAL bit status */ + 440:stm32lib/src/stm32f10x_adc.c **** return bitstatus; + 441:stm32lib/src/stm32f10x_adc.c **** } + 285 .loc 1 441 0 + 286 00be C0F38000 ubfx r0, r0, #2, #1 + 287 00c2 7047 bx lr + 288 .LFE32: + 290 .align 2 + 291 .global ADC_SoftwareStartConvCmd + 292 .thumb + 293 .thumb_func + 295 ADC_SoftwareStartConvCmd: + 296 .LFB33: + 442:stm32lib/src/stm32f10x_adc.c **** + 443:stm32lib/src/stm32f10x_adc.c **** /******************************************************************************* + 444:stm32lib/src/stm32f10x_adc.c **** * Function Name : ADC_SoftwareStartConvCmd + 445:stm32lib/src/stm32f10x_adc.c **** * Description : Enables or disables the selected ADC software start conversion . + 446:stm32lib/src/stm32f10x_adc.c **** * Input : - ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. + 447:stm32lib/src/stm32f10x_adc.c **** * - NewState: new state of the selected ADC software start conversion. + 448:stm32lib/src/stm32f10x_adc.c **** * This parameter can be: ENABLE or DISABLE. + 449:stm32lib/src/stm32f10x_adc.c **** * Output : None + 450:stm32lib/src/stm32f10x_adc.c **** * Return : None + 451:stm32lib/src/stm32f10x_adc.c **** *******************************************************************************/ + 452:stm32lib/src/stm32f10x_adc.c **** void ADC_SoftwareStartConvCmd(ADC_TypeDef* ADCx, FunctionalState NewState) + 453:stm32lib/src/stm32f10x_adc.c **** { + 297 .loc 1 453 0 + 298 @ args = 0, pretend = 0, frame = 0 + 299 @ frame_needed = 0, uses_anonymous_args = 0 + 300 @ link register save eliminated. + 301 .LVL21: + 454:stm32lib/src/stm32f10x_adc.c **** /* Check the parameters */ + 455:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_ADC_ALL_PERIPH(ADCx)); + 456:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_FUNCTIONAL_STATE(NewState)); + 457:stm32lib/src/stm32f10x_adc.c **** + 458:stm32lib/src/stm32f10x_adc.c **** if (NewState != DISABLE) + 302 .loc 1 458 0 + 303 00c4 19B1 cbz r1, .L31 + 459:stm32lib/src/stm32f10x_adc.c **** { + 460:stm32lib/src/stm32f10x_adc.c **** /* Enable the selected ADC conversion on external event and start the selected + 461:stm32lib/src/stm32f10x_adc.c **** ADC conversion */ + 462:stm32lib/src/stm32f10x_adc.c **** ADCx->CR2 |= CR2_EXTTRIG_SWSTART_Set; + 304 .loc 1 462 0 + 305 00c6 8368 ldr r3, [r0, #8] + 306 00c8 43F4A003 orr r3, r3, #5242880 + 307 00cc 02E0 b .L34 + 308 .L31: + 463:stm32lib/src/stm32f10x_adc.c **** } + 464:stm32lib/src/stm32f10x_adc.c **** else + 465:stm32lib/src/stm32f10x_adc.c **** { + 466:stm32lib/src/stm32f10x_adc.c **** /* Disable the selected ADC conversion on external event and stop the selected + 467:stm32lib/src/stm32f10x_adc.c **** ADC conversion */ + 468:stm32lib/src/stm32f10x_adc.c **** ADCx->CR2 &= CR2_EXTTRIG_SWSTART_Reset; + 309 .loc 1 468 0 + 310 00ce 8368 ldr r3, [r0, #8] + 311 00d0 23F4A003 bic r3, r3, #5242880 + 312 .L34: + 313 00d4 8360 str r3, [r0, #8] + 469:stm32lib/src/stm32f10x_adc.c **** } + 470:stm32lib/src/stm32f10x_adc.c **** } + 314 .loc 1 470 0 + 315 00d6 7047 bx lr + 316 .LFE33: + 318 .align 2 + 319 .global ADC_GetSoftwareStartConvStatus + 320 .thumb + 321 .thumb_func + 323 ADC_GetSoftwareStartConvStatus: + 324 .LFB34: + 471:stm32lib/src/stm32f10x_adc.c **** + 472:stm32lib/src/stm32f10x_adc.c **** /******************************************************************************* + 473:stm32lib/src/stm32f10x_adc.c **** * Function Name : ADC_GetSoftwareStartConvStatus + 474:stm32lib/src/stm32f10x_adc.c **** * Description : Gets the selected ADC Software start conversion Status. + 475:stm32lib/src/stm32f10x_adc.c **** * Input : - ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. + 476:stm32lib/src/stm32f10x_adc.c **** * Output : None + 477:stm32lib/src/stm32f10x_adc.c **** * Return : The new state of ADC software start conversion (SET or RESET). + 478:stm32lib/src/stm32f10x_adc.c **** *******************************************************************************/ + 479:stm32lib/src/stm32f10x_adc.c **** FlagStatus ADC_GetSoftwareStartConvStatus(ADC_TypeDef* ADCx) + 480:stm32lib/src/stm32f10x_adc.c **** { + 325 .loc 1 480 0 + 326 @ args = 0, pretend = 0, frame = 0 + 327 @ frame_needed = 0, uses_anonymous_args = 0 + 328 @ link register save eliminated. + 329 .LVL22: + 481:stm32lib/src/stm32f10x_adc.c **** FlagStatus bitstatus = RESET; + 482:stm32lib/src/stm32f10x_adc.c **** + 483:stm32lib/src/stm32f10x_adc.c **** /* Check the parameters */ + 484:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_ADC_ALL_PERIPH(ADCx)); + 485:stm32lib/src/stm32f10x_adc.c **** + 486:stm32lib/src/stm32f10x_adc.c **** /* Check the status of SWSTART bit */ + 487:stm32lib/src/stm32f10x_adc.c **** if ((ADCx->CR2 & CR2_SWSTART_Set) != (u32)RESET) + 330 .loc 1 487 0 + 331 00d8 8068 ldr r0, [r0, #8] + 332 .LVL23: + 488:stm32lib/src/stm32f10x_adc.c **** { + 489:stm32lib/src/stm32f10x_adc.c **** /* SWSTART bit is set */ + 490:stm32lib/src/stm32f10x_adc.c **** bitstatus = SET; + 491:stm32lib/src/stm32f10x_adc.c **** } + 492:stm32lib/src/stm32f10x_adc.c **** else + 493:stm32lib/src/stm32f10x_adc.c **** { + 494:stm32lib/src/stm32f10x_adc.c **** /* SWSTART bit is reset */ + 495:stm32lib/src/stm32f10x_adc.c **** bitstatus = RESET; + 496:stm32lib/src/stm32f10x_adc.c **** } + 497:stm32lib/src/stm32f10x_adc.c **** + 498:stm32lib/src/stm32f10x_adc.c **** /* Return the SWSTART bit status */ + 499:stm32lib/src/stm32f10x_adc.c **** return bitstatus; + 500:stm32lib/src/stm32f10x_adc.c **** } + 333 .loc 1 500 0 + 334 00da C0F38050 ubfx r0, r0, #22, #1 + 335 00de 7047 bx lr + 336 .LFE34: + 338 .align 2 + 339 .global ADC_DiscModeChannelCountConfig + 340 .thumb + 341 .thumb_func + 343 ADC_DiscModeChannelCountConfig: + 344 .LFB35: + 501:stm32lib/src/stm32f10x_adc.c **** + 502:stm32lib/src/stm32f10x_adc.c **** /******************************************************************************* + 503:stm32lib/src/stm32f10x_adc.c **** * Function Name : ADC_DiscModeChannelCountConfig + 504:stm32lib/src/stm32f10x_adc.c **** * Description : Configures the discontinuous mode for the selected ADC regular + 505:stm32lib/src/stm32f10x_adc.c **** * group channel. + 506:stm32lib/src/stm32f10x_adc.c **** * Input : - ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. + 507:stm32lib/src/stm32f10x_adc.c **** * - Number: specifies the discontinuous mode regular channel + 508:stm32lib/src/stm32f10x_adc.c **** * count value. This number must be between 1 and 8. + 509:stm32lib/src/stm32f10x_adc.c **** * Output : None + 510:stm32lib/src/stm32f10x_adc.c **** * Return : None + 511:stm32lib/src/stm32f10x_adc.c **** *******************************************************************************/ + 512:stm32lib/src/stm32f10x_adc.c **** void ADC_DiscModeChannelCountConfig(ADC_TypeDef* ADCx, u8 Number) + 513:stm32lib/src/stm32f10x_adc.c **** { + 345 .loc 1 513 0 + 346 @ args = 0, pretend = 0, frame = 0 + 347 @ frame_needed = 0, uses_anonymous_args = 0 + 348 @ link register save eliminated. + 349 .LVL24: + 514:stm32lib/src/stm32f10x_adc.c **** u32 tmpreg1 = 0; + 515:stm32lib/src/stm32f10x_adc.c **** u32 tmpreg2 = 0; + 516:stm32lib/src/stm32f10x_adc.c **** + 517:stm32lib/src/stm32f10x_adc.c **** /* Check the parameters */ + 518:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_ADC_ALL_PERIPH(ADCx)); + 519:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_ADC_REGULAR_DISC_NUMBER(Number)); + 520:stm32lib/src/stm32f10x_adc.c **** + 521:stm32lib/src/stm32f10x_adc.c **** /* Get the old register value */ + 522:stm32lib/src/stm32f10x_adc.c **** tmpreg1 = ADCx->CR1; + 350 .loc 1 522 0 + 351 00e0 4368 ldr r3, [r0, #4] + 352 .LVL25: + 523:stm32lib/src/stm32f10x_adc.c **** /* Clear the old discontinuous mode channel count */ + 524:stm32lib/src/stm32f10x_adc.c **** tmpreg1 &= CR1_DISCNUM_Reset; + 525:stm32lib/src/stm32f10x_adc.c **** /* Set the discontinuous mode channel count */ + 526:stm32lib/src/stm32f10x_adc.c **** tmpreg2 = Number - 1; + 527:stm32lib/src/stm32f10x_adc.c **** tmpreg1 |= tmpreg2 << 13; + 353 .loc 1 527 0 + 354 00e2 0139 subs r1, r1, #1 + 355 .LVL26: + 356 .loc 1 524 0 + 357 00e4 23F46043 bic r3, r3, #57344 + 358 .LVL27: + 359 .loc 1 527 0 + 360 00e8 43EA4133 orr r3, r3, r1, lsl #13 + 361 .LVL28: + 528:stm32lib/src/stm32f10x_adc.c **** /* Store the new register value */ + 529:stm32lib/src/stm32f10x_adc.c **** ADCx->CR1 = tmpreg1; + 362 .loc 1 529 0 + 363 00ec 4360 str r3, [r0, #4] + 530:stm32lib/src/stm32f10x_adc.c **** } + 364 .loc 1 530 0 + 365 00ee 7047 bx lr + 366 .LFE35: + 368 .align 2 + 369 .global ADC_DiscModeCmd + 370 .thumb + 371 .thumb_func + 373 ADC_DiscModeCmd: + 374 .LFB36: + 531:stm32lib/src/stm32f10x_adc.c **** + 532:stm32lib/src/stm32f10x_adc.c **** /******************************************************************************* + 533:stm32lib/src/stm32f10x_adc.c **** * Function Name : ADC_DiscModeCmd + 534:stm32lib/src/stm32f10x_adc.c **** * Description : Enables or disables the discontinuous mode on regular group + 535:stm32lib/src/stm32f10x_adc.c **** * channel for the specified ADC + 536:stm32lib/src/stm32f10x_adc.c **** * Input : - ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. + 537:stm32lib/src/stm32f10x_adc.c **** * - NewState: new state of the selected ADC discontinuous mode + 538:stm32lib/src/stm32f10x_adc.c **** * on regular group channel. + 539:stm32lib/src/stm32f10x_adc.c **** * This parameter can be: ENABLE or DISABLE. + 540:stm32lib/src/stm32f10x_adc.c **** * Output : None + 541:stm32lib/src/stm32f10x_adc.c **** * Return : None + 542:stm32lib/src/stm32f10x_adc.c **** *******************************************************************************/ + 543:stm32lib/src/stm32f10x_adc.c **** void ADC_DiscModeCmd(ADC_TypeDef* ADCx, FunctionalState NewState) + 544:stm32lib/src/stm32f10x_adc.c **** { + 375 .loc 1 544 0 + 376 @ args = 0, pretend = 0, frame = 0 + 377 @ frame_needed = 0, uses_anonymous_args = 0 + 378 @ link register save eliminated. + 379 .LVL29: + 545:stm32lib/src/stm32f10x_adc.c **** /* Check the parameters */ + 546:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_ADC_ALL_PERIPH(ADCx)); + 547:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_FUNCTIONAL_STATE(NewState)); + 548:stm32lib/src/stm32f10x_adc.c **** + 549:stm32lib/src/stm32f10x_adc.c **** if (NewState != DISABLE) + 380 .loc 1 549 0 + 381 00f0 19B1 cbz r1, .L40 + 550:stm32lib/src/stm32f10x_adc.c **** { + 551:stm32lib/src/stm32f10x_adc.c **** /* Enable the selected ADC regular discontinuous mode */ + 552:stm32lib/src/stm32f10x_adc.c **** ADCx->CR1 |= CR1_DISCEN_Set; + 382 .loc 1 552 0 + 383 00f2 4368 ldr r3, [r0, #4] + 384 00f4 43F40063 orr r3, r3, #2048 + 385 00f8 02E0 b .L43 + 386 .L40: + 553:stm32lib/src/stm32f10x_adc.c **** } + 554:stm32lib/src/stm32f10x_adc.c **** else + 555:stm32lib/src/stm32f10x_adc.c **** { + 556:stm32lib/src/stm32f10x_adc.c **** /* Disable the selected ADC regular discontinuous mode */ + 557:stm32lib/src/stm32f10x_adc.c **** ADCx->CR1 &= CR1_DISCEN_Reset; + 387 .loc 1 557 0 + 388 00fa 4368 ldr r3, [r0, #4] + 389 00fc 23F40063 bic r3, r3, #2048 + 390 .L43: + 391 0100 4360 str r3, [r0, #4] + 558:stm32lib/src/stm32f10x_adc.c **** } + 559:stm32lib/src/stm32f10x_adc.c **** } + 392 .loc 1 559 0 + 393 0102 7047 bx lr + 394 .LFE36: + 396 .align 2 + 397 .global ADC_RegularChannelConfig + 398 .thumb + 399 .thumb_func + 401 ADC_RegularChannelConfig: + 402 .LFB37: + 560:stm32lib/src/stm32f10x_adc.c **** + 561:stm32lib/src/stm32f10x_adc.c **** /******************************************************************************* + 562:stm32lib/src/stm32f10x_adc.c **** * Function Name : ADC_RegularChannelConfig + 563:stm32lib/src/stm32f10x_adc.c **** * Description : Configures for the selected ADC regular channel its corresponding + 564:stm32lib/src/stm32f10x_adc.c **** * rank in the sequencer and its sample time. + 565:stm32lib/src/stm32f10x_adc.c **** * Input : - ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. + 566:stm32lib/src/stm32f10x_adc.c **** * - ADC_Channel: the ADC channel to configure. + 567:stm32lib/src/stm32f10x_adc.c **** * This parameter can be one of the following values: + 568:stm32lib/src/stm32f10x_adc.c **** * - ADC_Channel_0: ADC Channel0 selected + 569:stm32lib/src/stm32f10x_adc.c **** * - ADC_Channel_1: ADC Channel1 selected + 570:stm32lib/src/stm32f10x_adc.c **** * - ADC_Channel_2: ADC Channel2 selected + 571:stm32lib/src/stm32f10x_adc.c **** * - ADC_Channel_3: ADC Channel3 selected + 572:stm32lib/src/stm32f10x_adc.c **** * - ADC_Channel_4: ADC Channel4 selected + 573:stm32lib/src/stm32f10x_adc.c **** * - ADC_Channel_5: ADC Channel5 selected + 574:stm32lib/src/stm32f10x_adc.c **** * - ADC_Channel_6: ADC Channel6 selected + 575:stm32lib/src/stm32f10x_adc.c **** * - ADC_Channel_7: ADC Channel7 selected + 576:stm32lib/src/stm32f10x_adc.c **** * - ADC_Channel_8: ADC Channel8 selected + 577:stm32lib/src/stm32f10x_adc.c **** * - ADC_Channel_9: ADC Channel9 selected + 578:stm32lib/src/stm32f10x_adc.c **** * - ADC_Channel_10: ADC Channel10 selected + 579:stm32lib/src/stm32f10x_adc.c **** * - ADC_Channel_11: ADC Channel11 selected + 580:stm32lib/src/stm32f10x_adc.c **** * - ADC_Channel_12: ADC Channel12 selected + 581:stm32lib/src/stm32f10x_adc.c **** * - ADC_Channel_13: ADC Channel13 selected + 582:stm32lib/src/stm32f10x_adc.c **** * - ADC_Channel_14: ADC Channel14 selected + 583:stm32lib/src/stm32f10x_adc.c **** * - ADC_Channel_15: ADC Channel15 selected + 584:stm32lib/src/stm32f10x_adc.c **** * - ADC_Channel_16: ADC Channel16 selected + 585:stm32lib/src/stm32f10x_adc.c **** * - ADC_Channel_17: ADC Channel17 selected + 586:stm32lib/src/stm32f10x_adc.c **** * - Rank: The rank in the regular group sequencer. This parameter + 587:stm32lib/src/stm32f10x_adc.c **** * must be between 1 to 16. + 588:stm32lib/src/stm32f10x_adc.c **** * - ADC_SampleTime: The sample time value to be set for the + 589:stm32lib/src/stm32f10x_adc.c **** * selected channel. + 590:stm32lib/src/stm32f10x_adc.c **** * This parameter can be one of the following values: + 591:stm32lib/src/stm32f10x_adc.c **** * - ADC_SampleTime_1Cycles5: Sample time equal to 1.5 cycles + 592:stm32lib/src/stm32f10x_adc.c **** * - ADC_SampleTime_7Cycles5: Sample time equal to 7.5 cycles + 593:stm32lib/src/stm32f10x_adc.c **** * - ADC_SampleTime_13Cycles5: Sample time equal to 13.5 cycles + 594:stm32lib/src/stm32f10x_adc.c **** * - ADC_SampleTime_28Cycles5: Sample time equal to 28.5 cycles + 595:stm32lib/src/stm32f10x_adc.c **** * - ADC_SampleTime_41Cycles5: Sample time equal to 41.5 cycles + 596:stm32lib/src/stm32f10x_adc.c **** * - ADC_SampleTime_55Cycles5: Sample time equal to 55.5 cycles + 597:stm32lib/src/stm32f10x_adc.c **** * - ADC_SampleTime_71Cycles5: Sample time equal to 71.5 cycles + 598:stm32lib/src/stm32f10x_adc.c **** * - ADC_SampleTime_239Cycles5: Sample time equal to 239.5 cycles + 599:stm32lib/src/stm32f10x_adc.c **** * Output : None + 600:stm32lib/src/stm32f10x_adc.c **** * Return : None + 601:stm32lib/src/stm32f10x_adc.c **** *******************************************************************************/ + 602:stm32lib/src/stm32f10x_adc.c **** void ADC_RegularChannelConfig(ADC_TypeDef* ADCx, u8 ADC_Channel, u8 Rank, u8 ADC_SampleTime) + 603:stm32lib/src/stm32f10x_adc.c **** { + 403 .loc 1 603 0 + 404 @ args = 0, pretend = 0, frame = 0 + 405 @ frame_needed = 0, uses_anonymous_args = 0 + 406 .LVL30: + 604:stm32lib/src/stm32f10x_adc.c **** u32 tmpreg1 = 0, tmpreg2 = 0; + 605:stm32lib/src/stm32f10x_adc.c **** + 606:stm32lib/src/stm32f10x_adc.c **** /* Check the parameters */ + 607:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_ADC_ALL_PERIPH(ADCx)); + 608:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_ADC_CHANNEL(ADC_Channel)); + 609:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_ADC_REGULAR_RANK(Rank)); + 610:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_ADC_SAMPLE_TIME(ADC_SampleTime)); + 611:stm32lib/src/stm32f10x_adc.c **** + 612:stm32lib/src/stm32f10x_adc.c **** /* if ADC_Channel_10 ... ADC_Channel_17 is selected */ + 613:stm32lib/src/stm32f10x_adc.c **** if (ADC_Channel > ADC_Channel_9) + 407 .loc 1 613 0 + 408 0104 0929 cmp r1, #9 + 409 .loc 1 603 0 + 410 0106 30B5 push {r4, r5, lr} + 411 .LCFI1: + 412 .loc 1 603 0 + 413 0108 9446 mov ip, r2 + 414 010a 0C46 mov r4, r1 + 415 010c 1D46 mov r5, r3 + 416 .loc 1 613 0 + 417 010e 0CD9 bls .L45 + 418 .LVL31: + 614:stm32lib/src/stm32f10x_adc.c **** { + 615:stm32lib/src/stm32f10x_adc.c **** /* Get the old register value */ + 616:stm32lib/src/stm32f10x_adc.c **** tmpreg1 = ADCx->SMPR1; + 617:stm32lib/src/stm32f10x_adc.c **** /* Calculate the mask to clear */ + 618:stm32lib/src/stm32f10x_adc.c **** tmpreg2 = SMPR1_SMP_Set << (3 * (ADC_Channel - 10)); + 419 .loc 1 618 0 + 420 0110 0322 movs r2, #3 + 421 0112 6243 muls r2, r4, r2 + 619:stm32lib/src/stm32f10x_adc.c **** /* Clear the old discontinuous mode channel count */ + 620:stm32lib/src/stm32f10x_adc.c **** tmpreg1 &= ~tmpreg2; + 422 .loc 1 620 0 + 423 0114 0723 movs r3, #7 + 424 .loc 1 618 0 + 425 0116 1E3A subs r2, r2, #30 + 426 .loc 1 620 0 + 427 0118 9340 lsls r3, r3, r2 + 621:stm32lib/src/stm32f10x_adc.c **** /* Calculate the mask to set */ + 622:stm32lib/src/stm32f10x_adc.c **** tmpreg2 = (u32)ADC_SampleTime << (3 * (ADC_Channel - 10)); + 623:stm32lib/src/stm32f10x_adc.c **** /* Set the discontinuous mode channel count */ + 624:stm32lib/src/stm32f10x_adc.c **** tmpreg1 |= tmpreg2; + 428 .loc 1 624 0 + 429 011a 15FA02F2 lsls r2, r5, r2 + 430 .loc 1 616 0 + 431 011e C168 ldr r1, [r0, #12] + 432 .LVL32: + 433 .loc 1 620 0 + 434 0120 21EA0301 bic r1, r1, r3 + 435 .LVL33: + 436 .loc 1 624 0 + 437 0124 1143 orrs r1, r1, r2 + 438 .LVL34: + 625:stm32lib/src/stm32f10x_adc.c **** /* Store the new register value */ + 626:stm32lib/src/stm32f10x_adc.c **** ADCx->SMPR1 = tmpreg1; + 439 .loc 1 626 0 + 440 0126 C160 str r1, [r0, #12] + 441 0128 0AE0 b .L46 + 442 .LVL35: + 443 .L45: + 627:stm32lib/src/stm32f10x_adc.c **** } + 628:stm32lib/src/stm32f10x_adc.c **** else /* ADC_Channel include in ADC_Channel_[0..9] */ + 629:stm32lib/src/stm32f10x_adc.c **** { + 630:stm32lib/src/stm32f10x_adc.c **** /* Get the old register value */ + 631:stm32lib/src/stm32f10x_adc.c **** tmpreg1 = ADCx->SMPR2; + 632:stm32lib/src/stm32f10x_adc.c **** /* Calculate the mask to clear */ + 633:stm32lib/src/stm32f10x_adc.c **** tmpreg2 = SMPR2_SMP_Set << (3 * ADC_Channel); + 444 .loc 1 633 0 + 445 012a 0322 movs r2, #3 + 446 012c 6243 muls r2, r4, r2 + 634:stm32lib/src/stm32f10x_adc.c **** /* Clear the old discontinuous mode channel count */ + 635:stm32lib/src/stm32f10x_adc.c **** tmpreg1 &= ~tmpreg2; + 447 .loc 1 635 0 + 448 012e 0723 movs r3, #7 + 449 0130 9340 lsls r3, r3, r2 + 636:stm32lib/src/stm32f10x_adc.c **** /* Calculate the mask to set */ + 637:stm32lib/src/stm32f10x_adc.c **** tmpreg2 = (u32)ADC_SampleTime << (3 * ADC_Channel); + 638:stm32lib/src/stm32f10x_adc.c **** /* Set the discontinuous mode channel count */ + 639:stm32lib/src/stm32f10x_adc.c **** tmpreg1 |= tmpreg2; + 450 .loc 1 639 0 + 451 0132 15FA02F2 lsls r2, r5, r2 + 452 .loc 1 631 0 + 453 0136 0169 ldr r1, [r0, #16] + 454 .LVL36: + 455 .loc 1 635 0 + 456 0138 21EA0301 bic r1, r1, r3 + 457 .LVL37: + 458 .loc 1 639 0 + 459 013c 1143 orrs r1, r1, r2 + 460 .LVL38: + 640:stm32lib/src/stm32f10x_adc.c **** /* Store the new register value */ + 641:stm32lib/src/stm32f10x_adc.c **** ADCx->SMPR2 = tmpreg1; + 461 .loc 1 641 0 + 462 013e 0161 str r1, [r0, #16] + 463 .L46: + 642:stm32lib/src/stm32f10x_adc.c **** } + 643:stm32lib/src/stm32f10x_adc.c **** /* For Rank 1 to 6 */ + 644:stm32lib/src/stm32f10x_adc.c **** if (Rank < 7) + 464 .loc 1 644 0 + 465 0140 BCF1060F cmp ip, #6 + 466 0144 0DD8 bhi .L47 + 645:stm32lib/src/stm32f10x_adc.c **** { + 646:stm32lib/src/stm32f10x_adc.c **** /* Get the old register value */ + 647:stm32lib/src/stm32f10x_adc.c **** tmpreg1 = ADCx->SQR3; + 648:stm32lib/src/stm32f10x_adc.c **** /* Calculate the mask to clear */ + 649:stm32lib/src/stm32f10x_adc.c **** tmpreg2 = SQR3_SQ_Set << (5 * (Rank - 1)); + 467 .loc 1 649 0 + 468 0146 0522 movs r2, #5 + 469 0148 02FB0CF2 mul r2, r2, ip + 650:stm32lib/src/stm32f10x_adc.c **** /* Clear the old SQx bits for the selected rank */ + 651:stm32lib/src/stm32f10x_adc.c **** tmpreg1 &= ~tmpreg2; + 470 .loc 1 651 0 + 471 014c 1F23 movs r3, #31 + 472 .loc 1 649 0 + 473 014e 053A subs r2, r2, #5 + 474 .loc 1 651 0 + 475 0150 9340 lsls r3, r3, r2 + 652:stm32lib/src/stm32f10x_adc.c **** /* Calculate the mask to set */ + 653:stm32lib/src/stm32f10x_adc.c **** tmpreg2 = (u32)ADC_Channel << (5 * (Rank - 1)); + 654:stm32lib/src/stm32f10x_adc.c **** /* Set the SQx bits for the selected rank */ + 655:stm32lib/src/stm32f10x_adc.c **** tmpreg1 |= tmpreg2; + 476 .loc 1 655 0 + 477 0152 14FA02F2 lsls r2, r4, r2 + 478 .loc 1 647 0 + 479 0156 416B ldr r1, [r0, #52] + 480 .LVL39: + 481 .loc 1 651 0 + 482 0158 21EA0301 bic r1, r1, r3 + 483 .LVL40: + 484 .loc 1 655 0 + 485 015c 1143 orrs r1, r1, r2 + 486 .LVL41: + 656:stm32lib/src/stm32f10x_adc.c **** /* Store the new register value */ + 657:stm32lib/src/stm32f10x_adc.c **** ADCx->SQR3 = tmpreg1; + 487 .loc 1 657 0 + 488 015e 4163 str r1, [r0, #52] + 489 0160 1DE0 b .L50 + 490 .L47: + 658:stm32lib/src/stm32f10x_adc.c **** } + 659:stm32lib/src/stm32f10x_adc.c **** /* For Rank 7 to 12 */ + 660:stm32lib/src/stm32f10x_adc.c **** else if (Rank < 13) + 491 .loc 1 660 0 + 492 0162 BCF10C0F cmp ip, #12 + 493 0166 0DD8 bhi .L49 + 661:stm32lib/src/stm32f10x_adc.c **** { + 662:stm32lib/src/stm32f10x_adc.c **** /* Get the old register value */ + 663:stm32lib/src/stm32f10x_adc.c **** tmpreg1 = ADCx->SQR2; + 664:stm32lib/src/stm32f10x_adc.c **** /* Calculate the mask to clear */ + 665:stm32lib/src/stm32f10x_adc.c **** tmpreg2 = SQR2_SQ_Set << (5 * (Rank - 7)); + 494 .loc 1 665 0 + 495 0168 0522 movs r2, #5 + 496 016a 02FB0CF2 mul r2, r2, ip + 666:stm32lib/src/stm32f10x_adc.c **** /* Clear the old SQx bits for the selected rank */ + 667:stm32lib/src/stm32f10x_adc.c **** tmpreg1 &= ~tmpreg2; + 497 .loc 1 667 0 + 498 016e 1F23 movs r3, #31 + 499 .loc 1 665 0 + 500 0170 233A subs r2, r2, #35 + 501 .loc 1 667 0 + 502 0172 9340 lsls r3, r3, r2 + 668:stm32lib/src/stm32f10x_adc.c **** /* Calculate the mask to set */ + 669:stm32lib/src/stm32f10x_adc.c **** tmpreg2 = (u32)ADC_Channel << (5 * (Rank - 7)); + 670:stm32lib/src/stm32f10x_adc.c **** /* Set the SQx bits for the selected rank */ + 671:stm32lib/src/stm32f10x_adc.c **** tmpreg1 |= tmpreg2; + 503 .loc 1 671 0 + 504 0174 14FA02F2 lsls r2, r4, r2 + 505 .loc 1 663 0 + 506 0178 016B ldr r1, [r0, #48] + 507 .LVL42: + 508 .loc 1 667 0 + 509 017a 21EA0301 bic r1, r1, r3 + 510 .LVL43: + 511 .loc 1 671 0 + 512 017e 1143 orrs r1, r1, r2 + 513 .LVL44: + 672:stm32lib/src/stm32f10x_adc.c **** /* Store the new register value */ + 673:stm32lib/src/stm32f10x_adc.c **** ADCx->SQR2 = tmpreg1; + 514 .loc 1 673 0 + 515 0180 0163 str r1, [r0, #48] + 516 0182 0CE0 b .L50 + 517 .L49: + 674:stm32lib/src/stm32f10x_adc.c **** } + 675:stm32lib/src/stm32f10x_adc.c **** /* For Rank 13 to 16 */ + 676:stm32lib/src/stm32f10x_adc.c **** else + 677:stm32lib/src/stm32f10x_adc.c **** { + 678:stm32lib/src/stm32f10x_adc.c **** /* Get the old register value */ + 679:stm32lib/src/stm32f10x_adc.c **** tmpreg1 = ADCx->SQR1; + 680:stm32lib/src/stm32f10x_adc.c **** /* Calculate the mask to clear */ + 681:stm32lib/src/stm32f10x_adc.c **** tmpreg2 = SQR1_SQ_Set << (5 * (Rank - 13)); + 518 .loc 1 681 0 + 519 0184 0522 movs r2, #5 + 520 0186 02FB0CF2 mul r2, r2, ip + 682:stm32lib/src/stm32f10x_adc.c **** /* Clear the old SQx bits for the selected rank */ + 683:stm32lib/src/stm32f10x_adc.c **** tmpreg1 &= ~tmpreg2; + 521 .loc 1 683 0 + 522 018a 1F23 movs r3, #31 + 523 .loc 1 681 0 + 524 018c 413A subs r2, r2, #65 + 525 .loc 1 683 0 + 526 018e 9340 lsls r3, r3, r2 + 684:stm32lib/src/stm32f10x_adc.c **** /* Calculate the mask to set */ + 685:stm32lib/src/stm32f10x_adc.c **** tmpreg2 = (u32)ADC_Channel << (5 * (Rank - 13)); + 686:stm32lib/src/stm32f10x_adc.c **** /* Set the SQx bits for the selected rank */ + 687:stm32lib/src/stm32f10x_adc.c **** tmpreg1 |= tmpreg2; + 527 .loc 1 687 0 + 528 0190 14FA02F2 lsls r2, r4, r2 + 529 .loc 1 679 0 + 530 0194 C16A ldr r1, [r0, #44] + 531 .LVL45: + 532 .loc 1 683 0 + 533 0196 21EA0301 bic r1, r1, r3 + 534 .LVL46: + 535 .loc 1 687 0 + 536 019a 1143 orrs r1, r1, r2 + 537 .LVL47: + 688:stm32lib/src/stm32f10x_adc.c **** /* Store the new register value */ + 689:stm32lib/src/stm32f10x_adc.c **** ADCx->SQR1 = tmpreg1; + 538 .loc 1 689 0 + 539 019c C162 str r1, [r0, #44] + 540 .L50: + 690:stm32lib/src/stm32f10x_adc.c **** } + 691:stm32lib/src/stm32f10x_adc.c **** } + 541 .loc 1 691 0 + 542 019e 30BD pop {r4, r5, pc} + 543 .LFE37: + 545 .align 2 + 546 .global ADC_ExternalTrigConvCmd + 547 .thumb + 548 .thumb_func + 550 ADC_ExternalTrigConvCmd: + 551 .LFB38: + 692:stm32lib/src/stm32f10x_adc.c **** + 693:stm32lib/src/stm32f10x_adc.c **** /******************************************************************************* + 694:stm32lib/src/stm32f10x_adc.c **** * Function Name : ADC_ExternalTrigConvCmd + 695:stm32lib/src/stm32f10x_adc.c **** * Description : Enables or disables the ADCx conversion through external trigger. + 696:stm32lib/src/stm32f10x_adc.c **** * Input : - ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. + 697:stm32lib/src/stm32f10x_adc.c **** * - NewState: new state of the selected ADC external trigger + 698:stm32lib/src/stm32f10x_adc.c **** * start of conversion. + 699:stm32lib/src/stm32f10x_adc.c **** * This parameter can be: ENABLE or DISABLE. + 700:stm32lib/src/stm32f10x_adc.c **** * Output : None + 701:stm32lib/src/stm32f10x_adc.c **** * Return : None + 702:stm32lib/src/stm32f10x_adc.c **** *******************************************************************************/ + 703:stm32lib/src/stm32f10x_adc.c **** void ADC_ExternalTrigConvCmd(ADC_TypeDef* ADCx, FunctionalState NewState) + 704:stm32lib/src/stm32f10x_adc.c **** { + 552 .loc 1 704 0 + 553 @ args = 0, pretend = 0, frame = 0 + 554 @ frame_needed = 0, uses_anonymous_args = 0 + 555 @ link register save eliminated. + 556 .LVL48: + 705:stm32lib/src/stm32f10x_adc.c **** /* Check the parameters */ + 706:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_ADC_ALL_PERIPH(ADCx)); + 707:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_FUNCTIONAL_STATE(NewState)); + 708:stm32lib/src/stm32f10x_adc.c **** + 709:stm32lib/src/stm32f10x_adc.c **** if (NewState != DISABLE) + 557 .loc 1 709 0 + 558 01a0 19B1 cbz r1, .L52 + 710:stm32lib/src/stm32f10x_adc.c **** { + 711:stm32lib/src/stm32f10x_adc.c **** /* Enable the selected ADC conversion on external event */ + 712:stm32lib/src/stm32f10x_adc.c **** ADCx->CR2 |= CR2_EXTTRIG_Set; + 559 .loc 1 712 0 + 560 01a2 8368 ldr r3, [r0, #8] + 561 01a4 43F48013 orr r3, r3, #1048576 + 562 01a8 02E0 b .L55 + 563 .L52: + 713:stm32lib/src/stm32f10x_adc.c **** } + 714:stm32lib/src/stm32f10x_adc.c **** else + 715:stm32lib/src/stm32f10x_adc.c **** { + 716:stm32lib/src/stm32f10x_adc.c **** /* Disable the selected ADC conversion on external event */ + 717:stm32lib/src/stm32f10x_adc.c **** ADCx->CR2 &= CR2_EXTTRIG_Reset; + 564 .loc 1 717 0 + 565 01aa 8368 ldr r3, [r0, #8] + 566 01ac 23F48013 bic r3, r3, #1048576 + 567 .L55: + 568 01b0 8360 str r3, [r0, #8] + 718:stm32lib/src/stm32f10x_adc.c **** } + 719:stm32lib/src/stm32f10x_adc.c **** } + 569 .loc 1 719 0 + 570 01b2 7047 bx lr + 571 .LFE38: + 573 .align 2 + 574 .global ADC_GetConversionValue + 575 .thumb + 576 .thumb_func + 578 ADC_GetConversionValue: + 579 .LFB39: + 720:stm32lib/src/stm32f10x_adc.c **** + 721:stm32lib/src/stm32f10x_adc.c **** /******************************************************************************* + 722:stm32lib/src/stm32f10x_adc.c **** * Function Name : ADC_GetConversionValue + 723:stm32lib/src/stm32f10x_adc.c **** * Description : Returns the last ADCx conversion result data for regular channel. + 724:stm32lib/src/stm32f10x_adc.c **** * Input : - ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. + 725:stm32lib/src/stm32f10x_adc.c **** * Output : None + 726:stm32lib/src/stm32f10x_adc.c **** * Return : The Data conversion value. + 727:stm32lib/src/stm32f10x_adc.c **** *******************************************************************************/ + 728:stm32lib/src/stm32f10x_adc.c **** u16 ADC_GetConversionValue(ADC_TypeDef* ADCx) + 729:stm32lib/src/stm32f10x_adc.c **** { + 580 .loc 1 729 0 + 581 @ args = 0, pretend = 0, frame = 0 + 582 @ frame_needed = 0, uses_anonymous_args = 0 + 583 @ link register save eliminated. + 584 .LVL49: + 730:stm32lib/src/stm32f10x_adc.c **** /* Check the parameters */ + 731:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_ADC_ALL_PERIPH(ADCx)); + 732:stm32lib/src/stm32f10x_adc.c **** + 733:stm32lib/src/stm32f10x_adc.c **** /* Return the selected ADC conversion value */ + 734:stm32lib/src/stm32f10x_adc.c **** return (u16) ADCx->DR; + 585 .loc 1 734 0 + 586 01b4 C06C ldr r0, [r0, #76] + 587 .LVL50: + 735:stm32lib/src/stm32f10x_adc.c **** } + 588 .loc 1 735 0 + 589 01b6 80B2 uxth r0, r0 + 590 01b8 7047 bx lr + 591 .LFE39: + 593 01ba 00BF .align 2 + 594 .global ADC_GetDualModeConversionValue + 595 .thumb + 596 .thumb_func + 598 ADC_GetDualModeConversionValue: + 599 .LFB40: + 736:stm32lib/src/stm32f10x_adc.c **** + 737:stm32lib/src/stm32f10x_adc.c **** /******************************************************************************* + 738:stm32lib/src/stm32f10x_adc.c **** * Function Name : ADC_GetDualModeConversionValue + 739:stm32lib/src/stm32f10x_adc.c **** * Description : Returns the last ADC1 and ADC2 conversion result data in dual mode. + 740:stm32lib/src/stm32f10x_adc.c **** * Output : None + 741:stm32lib/src/stm32f10x_adc.c **** * Return : The Data conversion value. + 742:stm32lib/src/stm32f10x_adc.c **** *******************************************************************************/ + 743:stm32lib/src/stm32f10x_adc.c **** u32 ADC_GetDualModeConversionValue(void) + 744:stm32lib/src/stm32f10x_adc.c **** { + 600 .loc 1 744 0 + 601 @ args = 0, pretend = 0, frame = 0 + 602 @ frame_needed = 0, uses_anonymous_args = 0 + 603 @ link register save eliminated. + 745:stm32lib/src/stm32f10x_adc.c **** /* Return the dual mode conversion value */ + 746:stm32lib/src/stm32f10x_adc.c **** return (*(vu32 *) DR_ADDRESS); + 604 .loc 1 746 0 + 605 01bc 014B ldr r3, .L60 + 606 01be 1868 ldr r0, [r3, #0] + 747:stm32lib/src/stm32f10x_adc.c **** } + 607 .loc 1 747 0 + 608 01c0 7047 bx lr + 609 .L61: + 610 01c2 00BF .align 2 + 611 .L60: + 612 01c4 4C240140 .word 1073816652 + 613 .LFE40: + 615 .align 2 + 616 .global ADC_AutoInjectedConvCmd + 617 .thumb + 618 .thumb_func + 620 ADC_AutoInjectedConvCmd: + 621 .LFB41: + 748:stm32lib/src/stm32f10x_adc.c **** + 749:stm32lib/src/stm32f10x_adc.c **** /******************************************************************************* + 750:stm32lib/src/stm32f10x_adc.c **** * Function Name : ADC_AutoInjectedConvCmd + 751:stm32lib/src/stm32f10x_adc.c **** * Description : Enables or disables the selected ADC automatic injected group + 752:stm32lib/src/stm32f10x_adc.c **** * conversion after regular one. + 753:stm32lib/src/stm32f10x_adc.c **** * Input : - ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. + 754:stm32lib/src/stm32f10x_adc.c **** * - NewState: new state of the selected ADC auto injected + 755:stm32lib/src/stm32f10x_adc.c **** * conversion + 756:stm32lib/src/stm32f10x_adc.c **** * This parameter can be: ENABLE or DISABLE. + 757:stm32lib/src/stm32f10x_adc.c **** * Output : None + 758:stm32lib/src/stm32f10x_adc.c **** * Return : None + 759:stm32lib/src/stm32f10x_adc.c **** *******************************************************************************/ + 760:stm32lib/src/stm32f10x_adc.c **** void ADC_AutoInjectedConvCmd(ADC_TypeDef* ADCx, FunctionalState NewState) + 761:stm32lib/src/stm32f10x_adc.c **** { + 622 .loc 1 761 0 + 623 @ args = 0, pretend = 0, frame = 0 + 624 @ frame_needed = 0, uses_anonymous_args = 0 + 625 @ link register save eliminated. + 626 .LVL51: + 762:stm32lib/src/stm32f10x_adc.c **** /* Check the parameters */ + 763:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_ADC_ALL_PERIPH(ADCx)); + 764:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_FUNCTIONAL_STATE(NewState)); + 765:stm32lib/src/stm32f10x_adc.c **** + 766:stm32lib/src/stm32f10x_adc.c **** if (NewState != DISABLE) + 627 .loc 1 766 0 + 628 01c8 19B1 cbz r1, .L63 + 767:stm32lib/src/stm32f10x_adc.c **** { + 768:stm32lib/src/stm32f10x_adc.c **** /* Enable the selected ADC automatic injected group conversion */ + 769:stm32lib/src/stm32f10x_adc.c **** ADCx->CR1 |= CR1_JAUTO_Set; + 629 .loc 1 769 0 + 630 01ca 4368 ldr r3, [r0, #4] + 631 01cc 43F48063 orr r3, r3, #1024 + 632 01d0 02E0 b .L66 + 633 .L63: + 770:stm32lib/src/stm32f10x_adc.c **** } + 771:stm32lib/src/stm32f10x_adc.c **** else + 772:stm32lib/src/stm32f10x_adc.c **** { + 773:stm32lib/src/stm32f10x_adc.c **** /* Disable the selected ADC automatic injected group conversion */ + 774:stm32lib/src/stm32f10x_adc.c **** ADCx->CR1 &= CR1_JAUTO_Reset; + 634 .loc 1 774 0 + 635 01d2 4368 ldr r3, [r0, #4] + 636 01d4 23F48063 bic r3, r3, #1024 + 637 .L66: + 638 01d8 4360 str r3, [r0, #4] + 775:stm32lib/src/stm32f10x_adc.c **** } + 776:stm32lib/src/stm32f10x_adc.c **** } + 639 .loc 1 776 0 + 640 01da 7047 bx lr + 641 .LFE41: + 643 .align 2 + 644 .global ADC_InjectedDiscModeCmd + 645 .thumb + 646 .thumb_func + 648 ADC_InjectedDiscModeCmd: + 649 .LFB42: + 777:stm32lib/src/stm32f10x_adc.c **** + 778:stm32lib/src/stm32f10x_adc.c **** /******************************************************************************* + 779:stm32lib/src/stm32f10x_adc.c **** * Function Name : ADC_InjectedDiscModeCmd + 780:stm32lib/src/stm32f10x_adc.c **** * Description : Enables or disables the discontinuous mode for injected group + 781:stm32lib/src/stm32f10x_adc.c **** * channel for the specified ADC + 782:stm32lib/src/stm32f10x_adc.c **** * Input : - ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. + 783:stm32lib/src/stm32f10x_adc.c **** * - NewState: new state of the selected ADC discontinuous mode + 784:stm32lib/src/stm32f10x_adc.c **** * on injected group channel. + 785:stm32lib/src/stm32f10x_adc.c **** * This parameter can be: ENABLE or DISABLE. + 786:stm32lib/src/stm32f10x_adc.c **** * Output : None + 787:stm32lib/src/stm32f10x_adc.c **** * Return : None + 788:stm32lib/src/stm32f10x_adc.c **** *******************************************************************************/ + 789:stm32lib/src/stm32f10x_adc.c **** void ADC_InjectedDiscModeCmd(ADC_TypeDef* ADCx, FunctionalState NewState) + 790:stm32lib/src/stm32f10x_adc.c **** { + 650 .loc 1 790 0 + 651 @ args = 0, pretend = 0, frame = 0 + 652 @ frame_needed = 0, uses_anonymous_args = 0 + 653 @ link register save eliminated. + 654 .LVL52: + 791:stm32lib/src/stm32f10x_adc.c **** /* Check the parameters */ + 792:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_ADC_ALL_PERIPH(ADCx)); + 793:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_FUNCTIONAL_STATE(NewState)); + 794:stm32lib/src/stm32f10x_adc.c **** + 795:stm32lib/src/stm32f10x_adc.c **** if (NewState != DISABLE) + 655 .loc 1 795 0 + 656 01dc 19B1 cbz r1, .L68 + 796:stm32lib/src/stm32f10x_adc.c **** { + 797:stm32lib/src/stm32f10x_adc.c **** /* Enable the selected ADC injected discontinuous mode */ + 798:stm32lib/src/stm32f10x_adc.c **** ADCx->CR1 |= CR1_JDISCEN_Set; + 657 .loc 1 798 0 + 658 01de 4368 ldr r3, [r0, #4] + 659 01e0 43F48053 orr r3, r3, #4096 + 660 01e4 02E0 b .L71 + 661 .L68: + 799:stm32lib/src/stm32f10x_adc.c **** } + 800:stm32lib/src/stm32f10x_adc.c **** else + 801:stm32lib/src/stm32f10x_adc.c **** { + 802:stm32lib/src/stm32f10x_adc.c **** /* Disable the selected ADC injected discontinuous mode */ + 803:stm32lib/src/stm32f10x_adc.c **** ADCx->CR1 &= CR1_JDISCEN_Reset; + 662 .loc 1 803 0 + 663 01e6 4368 ldr r3, [r0, #4] + 664 01e8 23F48053 bic r3, r3, #4096 + 665 .L71: + 666 01ec 4360 str r3, [r0, #4] + 804:stm32lib/src/stm32f10x_adc.c **** } + 805:stm32lib/src/stm32f10x_adc.c **** } + 667 .loc 1 805 0 + 668 01ee 7047 bx lr + 669 .LFE42: + 671 .align 2 + 672 .global ADC_ExternalTrigInjectedConvConfig + 673 .thumb + 674 .thumb_func + 676 ADC_ExternalTrigInjectedConvConfig: + 677 .LFB43: + 806:stm32lib/src/stm32f10x_adc.c **** + 807:stm32lib/src/stm32f10x_adc.c **** /******************************************************************************* + 808:stm32lib/src/stm32f10x_adc.c **** * Function Name : ADC_ExternalTrigInjectedConvConfig + 809:stm32lib/src/stm32f10x_adc.c **** * Description : Configures the ADCx external trigger for injected channels conversion. + 810:stm32lib/src/stm32f10x_adc.c **** * Input : - ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. + 811:stm32lib/src/stm32f10x_adc.c **** * - ADC_ExternalTrigInjecConv: specifies the ADC trigger to + 812:stm32lib/src/stm32f10x_adc.c **** * start injected conversion. + 813:stm32lib/src/stm32f10x_adc.c **** * This parameter can be one of the following values: + 814:stm32lib/src/stm32f10x_adc.c **** * - ADC_ExternalTrigInjecConv_T1_TRGO: Timer1 TRGO event + 815:stm32lib/src/stm32f10x_adc.c **** * selected (for ADC1, ADC2 and ADC3) + 816:stm32lib/src/stm32f10x_adc.c **** * - ADC_ExternalTrigInjecConv_T1_CC4: Timer1 capture + 817:stm32lib/src/stm32f10x_adc.c **** * compare4 selected (for ADC1, ADC2 and ADC3) + 818:stm32lib/src/stm32f10x_adc.c **** * - ADC_ExternalTrigInjecConv_T2_TRGO: Timer2 TRGO event + 819:stm32lib/src/stm32f10x_adc.c **** * selected (for ADC1 and ADC2) + 820:stm32lib/src/stm32f10x_adc.c **** * - ADC_External TrigInjecConv_T2_CC1: Timer2 capture + 821:stm32lib/src/stm32f10x_adc.c **** * compare1 selected (for ADC1 and ADC2) + 822:stm32lib/src/stm32f10x_adc.c **** * - ADC_ExternalTrigInjecConv_T3_CC4: Timer3 capture + 823:stm32lib/src/stm32f10x_adc.c **** * compare4 selected (for ADC1 and ADC2) + 824:stm32lib/src/stm32f10x_adc.c **** * - ADC_ExternalTrigInjecConv_T4_TRGO: Timer4 TRGO event + 825:stm32lib/src/stm32f10x_adc.c **** * selected (for ADC1 and ADC2) + 826:stm32lib/src/stm32f10x_adc.c **** * - ADC_ExternalTrigInjecConv_Ext_IT15_TIM8_CC4: External + 827:stm32lib/src/stm32f10x_adc.c **** * interrupt line 15 or Timer8 capture compare4 event selected + 828:stm32lib/src/stm32f10x_adc.c **** * (for ADC1 and ADC2) + 829:stm32lib/src/stm32f10x_adc.c **** * - ADC_External TrigInjecConv_T4_CC3: Timer4 capture + 830:stm32lib/src/stm32f10x_adc.c **** * compare3 selected (for ADC3 only) + 831:stm32lib/src/stm32f10x_adc.c **** * - ADC_External TrigInjecConv_T8_CC2: Timer8 capture + 832:stm32lib/src/stm32f10x_adc.c **** * compare2 selected (for ADC3 only) + 833:stm32lib/src/stm32f10x_adc.c **** * - ADC_External TrigInjecConv_T8_CC4: Timer8 capture + 834:stm32lib/src/stm32f10x_adc.c **** * compare4 selected (for ADC3 only) + 835:stm32lib/src/stm32f10x_adc.c **** * - ADC_ExternalTrigInjecConv_T5_TRGO: Timer5 TRGO event + 836:stm32lib/src/stm32f10x_adc.c **** * selected (for ADC3 only) + 837:stm32lib/src/stm32f10x_adc.c **** * - ADC_External TrigInjecConv_T5_CC4: Timer5 capture + 838:stm32lib/src/stm32f10x_adc.c **** * compare4 selected (for ADC3 only) + 839:stm32lib/src/stm32f10x_adc.c **** * - ADC_ExternalTrigInjecConv_None: Injected conversion + 840:stm32lib/src/stm32f10x_adc.c **** * started by software and not by external trigger (for + 841:stm32lib/src/stm32f10x_adc.c **** * ADC1, ADC2 and ADC3) + 842:stm32lib/src/stm32f10x_adc.c **** * Output : None + 843:stm32lib/src/stm32f10x_adc.c **** * Return : None + 844:stm32lib/src/stm32f10x_adc.c **** *******************************************************************************/ + 845:stm32lib/src/stm32f10x_adc.c **** void ADC_ExternalTrigInjectedConvConfig(ADC_TypeDef* ADCx, u32 ADC_ExternalTrigInjecConv) + 846:stm32lib/src/stm32f10x_adc.c **** { + 678 .loc 1 846 0 + 679 @ args = 0, pretend = 0, frame = 0 + 680 @ frame_needed = 0, uses_anonymous_args = 0 + 681 @ link register save eliminated. + 682 .LVL53: + 847:stm32lib/src/stm32f10x_adc.c **** u32 tmpreg = 0; + 848:stm32lib/src/stm32f10x_adc.c **** + 849:stm32lib/src/stm32f10x_adc.c **** /* Check the parameters */ + 850:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_ADC_ALL_PERIPH(ADCx)); + 851:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_ADC_EXT_INJEC_TRIG(ADC_ExternalTrigInjecConv)); + 852:stm32lib/src/stm32f10x_adc.c **** + 853:stm32lib/src/stm32f10x_adc.c **** /* Get the old register value */ + 854:stm32lib/src/stm32f10x_adc.c **** tmpreg = ADCx->CR2; + 683 .loc 1 854 0 + 684 01f0 8368 ldr r3, [r0, #8] + 685 .LVL54: + 855:stm32lib/src/stm32f10x_adc.c **** /* Clear the old external event selection for injected group */ + 856:stm32lib/src/stm32f10x_adc.c **** tmpreg &= CR2_JEXTSEL_Reset; + 686 .loc 1 856 0 + 687 01f2 23F4E043 bic r3, r3, #28672 + 688 .LVL55: + 857:stm32lib/src/stm32f10x_adc.c **** /* Set the external event selection for injected group */ + 858:stm32lib/src/stm32f10x_adc.c **** tmpreg |= ADC_ExternalTrigInjecConv; + 689 .loc 1 858 0 + 690 01f6 1943 orrs r1, r1, r3 + 691 .LVL56: + 859:stm32lib/src/stm32f10x_adc.c **** /* Store the new register value */ + 860:stm32lib/src/stm32f10x_adc.c **** ADCx->CR2 = tmpreg; + 692 .loc 1 860 0 + 693 01f8 8160 str r1, [r0, #8] + 861:stm32lib/src/stm32f10x_adc.c **** } + 694 .loc 1 861 0 + 695 01fa 7047 bx lr + 696 .LFE43: + 698 .align 2 + 699 .global ADC_ExternalTrigInjectedConvCmd + 700 .thumb + 701 .thumb_func + 703 ADC_ExternalTrigInjectedConvCmd: + 704 .LFB44: + 862:stm32lib/src/stm32f10x_adc.c **** + 863:stm32lib/src/stm32f10x_adc.c **** /******************************************************************************* + 864:stm32lib/src/stm32f10x_adc.c **** * Function Name : ADC_ExternalTrigInjectedConvCmd + 865:stm32lib/src/stm32f10x_adc.c **** * Description : Enables or disables the ADCx injected channels conversion + 866:stm32lib/src/stm32f10x_adc.c **** * through external trigger + 867:stm32lib/src/stm32f10x_adc.c **** * Input : - ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. + 868:stm32lib/src/stm32f10x_adc.c **** * - NewState: new state of the selected ADC external trigger + 869:stm32lib/src/stm32f10x_adc.c **** * start of injected conversion. + 870:stm32lib/src/stm32f10x_adc.c **** * This parameter can be: ENABLE or DISABLE. + 871:stm32lib/src/stm32f10x_adc.c **** * Output : None + 872:stm32lib/src/stm32f10x_adc.c **** * Return : None + 873:stm32lib/src/stm32f10x_adc.c **** *******************************************************************************/ + 874:stm32lib/src/stm32f10x_adc.c **** void ADC_ExternalTrigInjectedConvCmd(ADC_TypeDef* ADCx, FunctionalState NewState) + 875:stm32lib/src/stm32f10x_adc.c **** { + 705 .loc 1 875 0 + 706 @ args = 0, pretend = 0, frame = 0 + 707 @ frame_needed = 0, uses_anonymous_args = 0 + 708 @ link register save eliminated. + 709 .LVL57: + 876:stm32lib/src/stm32f10x_adc.c **** /* Check the parameters */ + 877:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_ADC_ALL_PERIPH(ADCx)); + 878:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_FUNCTIONAL_STATE(NewState)); + 879:stm32lib/src/stm32f10x_adc.c **** + 880:stm32lib/src/stm32f10x_adc.c **** if (NewState != DISABLE) + 710 .loc 1 880 0 + 711 01fc 19B1 cbz r1, .L75 + 881:stm32lib/src/stm32f10x_adc.c **** { + 882:stm32lib/src/stm32f10x_adc.c **** /* Enable the selected ADC external event selection for injected group */ + 883:stm32lib/src/stm32f10x_adc.c **** ADCx->CR2 |= CR2_JEXTTRIG_Set; + 712 .loc 1 883 0 + 713 01fe 8368 ldr r3, [r0, #8] + 714 0200 43F40043 orr r3, r3, #32768 + 715 0204 02E0 b .L78 + 716 .L75: + 884:stm32lib/src/stm32f10x_adc.c **** } + 885:stm32lib/src/stm32f10x_adc.c **** else + 886:stm32lib/src/stm32f10x_adc.c **** { + 887:stm32lib/src/stm32f10x_adc.c **** /* Disable the selected ADC external event selection for injected group */ + 888:stm32lib/src/stm32f10x_adc.c **** ADCx->CR2 &= CR2_JEXTTRIG_Reset; + 717 .loc 1 888 0 + 718 0206 8368 ldr r3, [r0, #8] + 719 0208 23F40043 bic r3, r3, #32768 + 720 .L78: + 721 020c 8360 str r3, [r0, #8] + 889:stm32lib/src/stm32f10x_adc.c **** } + 890:stm32lib/src/stm32f10x_adc.c **** } + 722 .loc 1 890 0 + 723 020e 7047 bx lr + 724 .LFE44: + 726 .align 2 + 727 .global ADC_SoftwareStartInjectedConvCmd + 728 .thumb + 729 .thumb_func + 731 ADC_SoftwareStartInjectedConvCmd: + 732 .LFB45: + 891:stm32lib/src/stm32f10x_adc.c **** + 892:stm32lib/src/stm32f10x_adc.c **** /******************************************************************************* + 893:stm32lib/src/stm32f10x_adc.c **** * Function Name : ADC_SoftwareStartInjectedConvCmd + 894:stm32lib/src/stm32f10x_adc.c **** * Description : Enables or disables the selected ADC start of the injected + 895:stm32lib/src/stm32f10x_adc.c **** * channels conversion. + 896:stm32lib/src/stm32f10x_adc.c **** * Input : - ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. + 897:stm32lib/src/stm32f10x_adc.c **** * - NewState: new state of the selected ADC software start + 898:stm32lib/src/stm32f10x_adc.c **** * injected conversion. + 899:stm32lib/src/stm32f10x_adc.c **** * This parameter can be: ENABLE or DISABLE. + 900:stm32lib/src/stm32f10x_adc.c **** * Output : None + 901:stm32lib/src/stm32f10x_adc.c **** * Return : None + 902:stm32lib/src/stm32f10x_adc.c **** *******************************************************************************/ + 903:stm32lib/src/stm32f10x_adc.c **** void ADC_SoftwareStartInjectedConvCmd(ADC_TypeDef* ADCx, FunctionalState NewState) + 904:stm32lib/src/stm32f10x_adc.c **** { + 733 .loc 1 904 0 + 734 @ args = 0, pretend = 0, frame = 0 + 735 @ frame_needed = 0, uses_anonymous_args = 0 + 736 @ link register save eliminated. + 737 .LVL58: + 905:stm32lib/src/stm32f10x_adc.c **** /* Check the parameters */ + 906:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_ADC_ALL_PERIPH(ADCx)); + 907:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_FUNCTIONAL_STATE(NewState)); + 908:stm32lib/src/stm32f10x_adc.c **** + 909:stm32lib/src/stm32f10x_adc.c **** if (NewState != DISABLE) + 738 .loc 1 909 0 + 739 0210 19B1 cbz r1, .L80 + 910:stm32lib/src/stm32f10x_adc.c **** { + 911:stm32lib/src/stm32f10x_adc.c **** /* Enable the selected ADC conversion for injected group on external event and start the select + 912:stm32lib/src/stm32f10x_adc.c **** ADC injected conversion */ + 913:stm32lib/src/stm32f10x_adc.c **** ADCx->CR2 |= CR2_JEXTTRIG_JSWSTART_Set; + 740 .loc 1 913 0 + 741 0212 8368 ldr r3, [r0, #8] + 742 0214 43F40213 orr r3, r3, #2129920 + 743 0218 02E0 b .L83 + 744 .L80: + 914:stm32lib/src/stm32f10x_adc.c **** } + 915:stm32lib/src/stm32f10x_adc.c **** else + 916:stm32lib/src/stm32f10x_adc.c **** { + 917:stm32lib/src/stm32f10x_adc.c **** /* Disable the selected ADC conversion on external event for injected group and stop the select + 918:stm32lib/src/stm32f10x_adc.c **** ADC injected conversion */ + 919:stm32lib/src/stm32f10x_adc.c **** ADCx->CR2 &= CR2_JEXTTRIG_JSWSTART_Reset; + 745 .loc 1 919 0 + 746 021a 8368 ldr r3, [r0, #8] + 747 021c 23F40213 bic r3, r3, #2129920 + 748 .L83: + 749 0220 8360 str r3, [r0, #8] + 920:stm32lib/src/stm32f10x_adc.c **** } + 921:stm32lib/src/stm32f10x_adc.c **** } + 750 .loc 1 921 0 + 751 0222 7047 bx lr + 752 .LFE45: + 754 .align 2 + 755 .global ADC_GetSoftwareStartInjectedConvCmdStatus + 756 .thumb + 757 .thumb_func + 759 ADC_GetSoftwareStartInjectedConvCmdStatus: + 760 .LFB46: + 922:stm32lib/src/stm32f10x_adc.c **** + 923:stm32lib/src/stm32f10x_adc.c **** /******************************************************************************* + 924:stm32lib/src/stm32f10x_adc.c **** * Function Name : ADC_GetSoftwareStartInjectedConvCmdStatus + 925:stm32lib/src/stm32f10x_adc.c **** * Description : Gets the selected ADC Software start injected conversion Status. + 926:stm32lib/src/stm32f10x_adc.c **** * Input : - ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. + 927:stm32lib/src/stm32f10x_adc.c **** * Output : None + 928:stm32lib/src/stm32f10x_adc.c **** * Return : The new state of ADC software start injected conversion (SET or RESET). + 929:stm32lib/src/stm32f10x_adc.c **** *******************************************************************************/ + 930:stm32lib/src/stm32f10x_adc.c **** FlagStatus ADC_GetSoftwareStartInjectedConvCmdStatus(ADC_TypeDef* ADCx) + 931:stm32lib/src/stm32f10x_adc.c **** { + 761 .loc 1 931 0 + 762 @ args = 0, pretend = 0, frame = 0 + 763 @ frame_needed = 0, uses_anonymous_args = 0 + 764 @ link register save eliminated. + 765 .LVL59: + 932:stm32lib/src/stm32f10x_adc.c **** FlagStatus bitstatus = RESET; + 933:stm32lib/src/stm32f10x_adc.c **** + 934:stm32lib/src/stm32f10x_adc.c **** /* Check the parameters */ + 935:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_ADC_ALL_PERIPH(ADCx)); + 936:stm32lib/src/stm32f10x_adc.c **** + 937:stm32lib/src/stm32f10x_adc.c **** /* Check the status of JSWSTART bit */ + 938:stm32lib/src/stm32f10x_adc.c **** if ((ADCx->CR2 & CR2_JSWSTART_Set) != (u32)RESET) + 766 .loc 1 938 0 + 767 0224 8068 ldr r0, [r0, #8] + 768 .LVL60: + 939:stm32lib/src/stm32f10x_adc.c **** { + 940:stm32lib/src/stm32f10x_adc.c **** /* JSWSTART bit is set */ + 941:stm32lib/src/stm32f10x_adc.c **** bitstatus = SET; + 942:stm32lib/src/stm32f10x_adc.c **** } + 943:stm32lib/src/stm32f10x_adc.c **** else + 944:stm32lib/src/stm32f10x_adc.c **** { + 945:stm32lib/src/stm32f10x_adc.c **** /* JSWSTART bit is reset */ + 946:stm32lib/src/stm32f10x_adc.c **** bitstatus = RESET; + 947:stm32lib/src/stm32f10x_adc.c **** } + 948:stm32lib/src/stm32f10x_adc.c **** + 949:stm32lib/src/stm32f10x_adc.c **** /* Return the JSWSTART bit status */ + 950:stm32lib/src/stm32f10x_adc.c **** return bitstatus; + 951:stm32lib/src/stm32f10x_adc.c **** } + 769 .loc 1 951 0 + 770 0226 C0F34050 ubfx r0, r0, #21, #1 + 771 022a 7047 bx lr + 772 .LFE46: + 774 .align 2 + 775 .global ADC_InjectedChannelConfig + 776 .thumb + 777 .thumb_func + 779 ADC_InjectedChannelConfig: + 780 .LFB47: + 952:stm32lib/src/stm32f10x_adc.c **** + 953:stm32lib/src/stm32f10x_adc.c **** /******************************************************************************* + 954:stm32lib/src/stm32f10x_adc.c **** * Function Name : ADC_InjectedChannelConfig + 955:stm32lib/src/stm32f10x_adc.c **** * Description : Configures for the selected ADC injected channel its corresponding + 956:stm32lib/src/stm32f10x_adc.c **** * rank in the sequencer and its sample time. + 957:stm32lib/src/stm32f10x_adc.c **** * Input : - ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. + 958:stm32lib/src/stm32f10x_adc.c **** * - ADC_Channel: the ADC channel to configure. + 959:stm32lib/src/stm32f10x_adc.c **** * This parameter can be one of the following values: + 960:stm32lib/src/stm32f10x_adc.c **** * - ADC_Channel_0: ADC Channel0 selected + 961:stm32lib/src/stm32f10x_adc.c **** * - ADC_Channel_1: ADC Channel1 selected + 962:stm32lib/src/stm32f10x_adc.c **** * - ADC_Channel_2: ADC Channel2 selected + 963:stm32lib/src/stm32f10x_adc.c **** * - ADC_Channel_3: ADC Channel3 selected + 964:stm32lib/src/stm32f10x_adc.c **** * - ADC_Channel_4: ADC Channel4 selected + 965:stm32lib/src/stm32f10x_adc.c **** * - ADC_Channel_5: ADC Channel5 selected + 966:stm32lib/src/stm32f10x_adc.c **** * - ADC_Channel_6: ADC Channel6 selected + 967:stm32lib/src/stm32f10x_adc.c **** * - ADC_Channel_7: ADC Channel7 selected + 968:stm32lib/src/stm32f10x_adc.c **** * - ADC_Channel_8: ADC Channel8 selected + 969:stm32lib/src/stm32f10x_adc.c **** * - ADC_Channel_9: ADC Channel9 selected + 970:stm32lib/src/stm32f10x_adc.c **** * - ADC_Channel_10: ADC Channel10 selected + 971:stm32lib/src/stm32f10x_adc.c **** * - ADC_Channel_11: ADC Channel11 selected + 972:stm32lib/src/stm32f10x_adc.c **** * - ADC_Channel_12: ADC Channel12 selected + 973:stm32lib/src/stm32f10x_adc.c **** * - ADC_Channel_13: ADC Channel13 selected + 974:stm32lib/src/stm32f10x_adc.c **** * - ADC_Channel_14: ADC Channel14 selected + 975:stm32lib/src/stm32f10x_adc.c **** * - ADC_Channel_15: ADC Channel15 selected + 976:stm32lib/src/stm32f10x_adc.c **** * - ADC_Channel_16: ADC Channel16 selected + 977:stm32lib/src/stm32f10x_adc.c **** * - ADC_Channel_17: ADC Channel17 selected + 978:stm32lib/src/stm32f10x_adc.c **** * - Rank: The rank in the injected group sequencer. This parameter + 979:stm32lib/src/stm32f10x_adc.c **** * must be between 1 to 4. + 980:stm32lib/src/stm32f10x_adc.c **** * - ADC_SampleTime: The sample time value to be set for the + 981:stm32lib/src/stm32f10x_adc.c **** * selected channel. + 982:stm32lib/src/stm32f10x_adc.c **** * This parameter can be one of the following values: + 983:stm32lib/src/stm32f10x_adc.c **** * - ADC_SampleTime_1Cycles5: Sample time equal to 1.5 cycles + 984:stm32lib/src/stm32f10x_adc.c **** * - ADC_SampleTime_7Cycles5: Sample time equal to 7.5 cycles + 985:stm32lib/src/stm32f10x_adc.c **** * - ADC_SampleTime_13Cycles5: Sample time equal to 13.5 cycles + 986:stm32lib/src/stm32f10x_adc.c **** * - ADC_SampleTime_28Cycles5: Sample time equal to 28.5 cycles + 987:stm32lib/src/stm32f10x_adc.c **** * - ADC_SampleTime_41Cycles5: Sample time equal to 41.5 cycles + 988:stm32lib/src/stm32f10x_adc.c **** * - ADC_SampleTime_55Cycles5: Sample time equal to 55.5 cycles + 989:stm32lib/src/stm32f10x_adc.c **** * - ADC_SampleTime_71Cycles5: Sample time equal to 71.5 cycles + 990:stm32lib/src/stm32f10x_adc.c **** * - ADC_SampleTime_239Cycles5: Sample time equal to 239.5 cycles + 991:stm32lib/src/stm32f10x_adc.c **** * Output : None + 992:stm32lib/src/stm32f10x_adc.c **** * Return : None + 993:stm32lib/src/stm32f10x_adc.c **** *******************************************************************************/ + 994:stm32lib/src/stm32f10x_adc.c **** void ADC_InjectedChannelConfig(ADC_TypeDef* ADCx, u8 ADC_Channel, u8 Rank, u8 ADC_SampleTime) + 995:stm32lib/src/stm32f10x_adc.c **** { + 781 .loc 1 995 0 + 782 @ args = 0, pretend = 0, frame = 0 + 783 @ frame_needed = 0, uses_anonymous_args = 0 + 784 .LVL61: + 996:stm32lib/src/stm32f10x_adc.c **** u32 tmpreg1 = 0, tmpreg2 = 0, tmpreg3 = 0; + 997:stm32lib/src/stm32f10x_adc.c **** + 998:stm32lib/src/stm32f10x_adc.c **** /* Check the parameters */ + 999:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_ADC_ALL_PERIPH(ADCx)); +1000:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_ADC_CHANNEL(ADC_Channel)); +1001:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_ADC_INJECTED_RANK(Rank)); +1002:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_ADC_SAMPLE_TIME(ADC_SampleTime)); +1003:stm32lib/src/stm32f10x_adc.c **** +1004:stm32lib/src/stm32f10x_adc.c **** /* if ADC_Channel_10 ... ADC_Channel_17 is selected */ +1005:stm32lib/src/stm32f10x_adc.c **** if (ADC_Channel > ADC_Channel_9) + 785 .loc 1 1005 0 + 786 022c 0929 cmp r1, #9 + 787 .loc 1 995 0 + 788 022e 30B5 push {r4, r5, lr} + 789 .LCFI2: + 790 .loc 1 995 0 + 791 0230 8C46 mov ip, r1 + 792 0232 1546 mov r5, r2 + 793 0234 1C46 mov r4, r3 + 794 .loc 1 1005 0 + 795 0236 0DD9 bls .L87 + 796 .LVL62: +1006:stm32lib/src/stm32f10x_adc.c **** { +1007:stm32lib/src/stm32f10x_adc.c **** /* Get the old register value */ +1008:stm32lib/src/stm32f10x_adc.c **** tmpreg1 = ADCx->SMPR1; +1009:stm32lib/src/stm32f10x_adc.c **** /* Calculate the mask to clear */ +1010:stm32lib/src/stm32f10x_adc.c **** tmpreg2 = SMPR1_SMP_Set << (3*(ADC_Channel - 10)); + 797 .loc 1 1010 0 + 798 0238 0322 movs r2, #3 + 799 023a 02FB0CF2 mul r2, r2, ip +1011:stm32lib/src/stm32f10x_adc.c **** /* Clear the old discontinuous mode channel count */ +1012:stm32lib/src/stm32f10x_adc.c **** tmpreg1 &= ~tmpreg2; + 800 .loc 1 1012 0 + 801 023e 0723 movs r3, #7 + 802 .loc 1 1010 0 + 803 0240 1E3A subs r2, r2, #30 + 804 .loc 1 1012 0 + 805 0242 9340 lsls r3, r3, r2 +1013:stm32lib/src/stm32f10x_adc.c **** /* Calculate the mask to set */ +1014:stm32lib/src/stm32f10x_adc.c **** tmpreg2 = (u32)ADC_SampleTime << (3*(ADC_Channel - 10)); +1015:stm32lib/src/stm32f10x_adc.c **** /* Set the discontinuous mode channel count */ +1016:stm32lib/src/stm32f10x_adc.c **** tmpreg1 |= tmpreg2; + 806 .loc 1 1016 0 + 807 0244 14FA02F2 lsls r2, r4, r2 + 808 .loc 1 1008 0 + 809 0248 C168 ldr r1, [r0, #12] + 810 .LVL63: + 811 .loc 1 1012 0 + 812 024a 21EA0301 bic r1, r1, r3 + 813 .LVL64: + 814 .loc 1 1016 0 + 815 024e 1143 orrs r1, r1, r2 + 816 .LVL65: +1017:stm32lib/src/stm32f10x_adc.c **** /* Store the new register value */ +1018:stm32lib/src/stm32f10x_adc.c **** ADCx->SMPR1 = tmpreg1; + 817 .loc 1 1018 0 + 818 0250 C160 str r1, [r0, #12] + 819 0252 0BE0 b .L88 + 820 .LVL66: + 821 .L87: +1019:stm32lib/src/stm32f10x_adc.c **** } +1020:stm32lib/src/stm32f10x_adc.c **** else /* ADC_Channel include in ADC_Channel_[0..9] */ +1021:stm32lib/src/stm32f10x_adc.c **** { +1022:stm32lib/src/stm32f10x_adc.c **** /* Get the old register value */ +1023:stm32lib/src/stm32f10x_adc.c **** tmpreg1 = ADCx->SMPR2; +1024:stm32lib/src/stm32f10x_adc.c **** /* Calculate the mask to clear */ +1025:stm32lib/src/stm32f10x_adc.c **** tmpreg2 = SMPR2_SMP_Set << (3 * ADC_Channel); + 822 .loc 1 1025 0 + 823 0254 0322 movs r2, #3 + 824 0256 02FB0CF2 mul r2, r2, ip +1026:stm32lib/src/stm32f10x_adc.c **** /* Clear the old discontinuous mode channel count */ +1027:stm32lib/src/stm32f10x_adc.c **** tmpreg1 &= ~tmpreg2; + 825 .loc 1 1027 0 + 826 025a 0723 movs r3, #7 + 827 025c 9340 lsls r3, r3, r2 +1028:stm32lib/src/stm32f10x_adc.c **** /* Calculate the mask to set */ +1029:stm32lib/src/stm32f10x_adc.c **** tmpreg2 = (u32)ADC_SampleTime << (3 * ADC_Channel); +1030:stm32lib/src/stm32f10x_adc.c **** /* Set the discontinuous mode channel count */ +1031:stm32lib/src/stm32f10x_adc.c **** tmpreg1 |= tmpreg2; + 828 .loc 1 1031 0 + 829 025e 14FA02F2 lsls r2, r4, r2 + 830 .loc 1 1023 0 + 831 0262 0169 ldr r1, [r0, #16] + 832 .LVL67: + 833 .loc 1 1027 0 + 834 0264 21EA0301 bic r1, r1, r3 + 835 .LVL68: + 836 .loc 1 1031 0 + 837 0268 1143 orrs r1, r1, r2 + 838 .LVL69: +1032:stm32lib/src/stm32f10x_adc.c **** /* Store the new register value */ +1033:stm32lib/src/stm32f10x_adc.c **** ADCx->SMPR2 = tmpreg1; + 839 .loc 1 1033 0 + 840 026a 0161 str r1, [r0, #16] + 841 .L88: +1034:stm32lib/src/stm32f10x_adc.c **** } +1035:stm32lib/src/stm32f10x_adc.c **** +1036:stm32lib/src/stm32f10x_adc.c **** /* Rank configuration */ +1037:stm32lib/src/stm32f10x_adc.c **** /* Get the old register value */ +1038:stm32lib/src/stm32f10x_adc.c **** tmpreg1 = ADCx->JSQR; + 842 .loc 1 1038 0 + 843 026c 816B ldr r1, [r0, #56] + 844 .LVL70: +1039:stm32lib/src/stm32f10x_adc.c **** /* Get JL value: Number = JL+1 */ +1040:stm32lib/src/stm32f10x_adc.c **** tmpreg3 = (tmpreg1 & JSQR_JL_Set)>> 20; +1041:stm32lib/src/stm32f10x_adc.c **** /* Calculate the mask to clear: ((Rank-1)+(4-JL-1)) */ +1042:stm32lib/src/stm32f10x_adc.c **** tmpreg2 = JSQR_JSQ_Set << (5 * (u8)((Rank + 3) - (tmpreg3 + 1))); + 845 .loc 1 1042 0 + 846 026e 0522 movs r2, #5 + 847 0270 C1F30153 ubfx r3, r1, #20, #2 + 848 0274 EB1A subs r3, r5, r3 + 849 0276 0233 adds r3, r3, #2 + 850 0278 DBB2 uxtb r3, r3 + 851 027a 5A43 muls r2, r3, r2 +1043:stm32lib/src/stm32f10x_adc.c **** /* Clear the old JSQx bits for the selected rank */ +1044:stm32lib/src/stm32f10x_adc.c **** tmpreg1 &= ~tmpreg2; + 852 .loc 1 1044 0 + 853 027c 1F23 movs r3, #31 + 854 027e 9340 lsls r3, r3, r2 +1045:stm32lib/src/stm32f10x_adc.c **** /* Calculate the mask to set: ((Rank-1)+(4-JL-1)) */ +1046:stm32lib/src/stm32f10x_adc.c **** tmpreg2 = (u32)ADC_Channel << (5 * (u8)((Rank + 3) - (tmpreg3 + 1))); +1047:stm32lib/src/stm32f10x_adc.c **** /* Set the JSQx bits for the selected rank */ +1048:stm32lib/src/stm32f10x_adc.c **** tmpreg1 |= tmpreg2; + 855 .loc 1 1048 0 + 856 0280 0CFA02F2 lsl r2, ip, r2 + 857 .loc 1 1044 0 + 858 0284 21EA0301 bic r1, r1, r3 + 859 .LVL71: + 860 .loc 1 1048 0 + 861 0288 1143 orrs r1, r1, r2 + 862 .LVL72: +1049:stm32lib/src/stm32f10x_adc.c **** /* Store the new register value */ +1050:stm32lib/src/stm32f10x_adc.c **** ADCx->JSQR = tmpreg1; + 863 .loc 1 1050 0 + 864 028a 8163 str r1, [r0, #56] +1051:stm32lib/src/stm32f10x_adc.c **** } + 865 .loc 1 1051 0 + 866 028c 30BD pop {r4, r5, pc} + 867 .LFE47: + 869 028e 00BF .align 2 + 870 .global ADC_InjectedSequencerLengthConfig + 871 .thumb + 872 .thumb_func + 874 ADC_InjectedSequencerLengthConfig: + 875 .LFB48: +1052:stm32lib/src/stm32f10x_adc.c **** +1053:stm32lib/src/stm32f10x_adc.c **** /******************************************************************************* +1054:stm32lib/src/stm32f10x_adc.c **** * Function Name : ADC_InjectedSequencerLengthConfig +1055:stm32lib/src/stm32f10x_adc.c **** * Description : Configures the sequencer length for injected channels +1056:stm32lib/src/stm32f10x_adc.c **** * Input : - ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. +1057:stm32lib/src/stm32f10x_adc.c **** * - Length: The sequencer length. +1058:stm32lib/src/stm32f10x_adc.c **** * This parameter must be a number between 1 to 4. +1059:stm32lib/src/stm32f10x_adc.c **** * Output : None +1060:stm32lib/src/stm32f10x_adc.c **** * Return : None +1061:stm32lib/src/stm32f10x_adc.c **** *******************************************************************************/ +1062:stm32lib/src/stm32f10x_adc.c **** void ADC_InjectedSequencerLengthConfig(ADC_TypeDef* ADCx, u8 Length) +1063:stm32lib/src/stm32f10x_adc.c **** { + 876 .loc 1 1063 0 + 877 @ args = 0, pretend = 0, frame = 0 + 878 @ frame_needed = 0, uses_anonymous_args = 0 + 879 @ link register save eliminated. + 880 .LVL73: +1064:stm32lib/src/stm32f10x_adc.c **** u32 tmpreg1 = 0; +1065:stm32lib/src/stm32f10x_adc.c **** u32 tmpreg2 = 0; +1066:stm32lib/src/stm32f10x_adc.c **** +1067:stm32lib/src/stm32f10x_adc.c **** /* Check the parameters */ +1068:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_ADC_ALL_PERIPH(ADCx)); +1069:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_ADC_INJECTED_LENGTH(Length)); +1070:stm32lib/src/stm32f10x_adc.c **** +1071:stm32lib/src/stm32f10x_adc.c **** /* Get the old register value */ +1072:stm32lib/src/stm32f10x_adc.c **** tmpreg1 = ADCx->JSQR; + 881 .loc 1 1072 0 + 882 0290 836B ldr r3, [r0, #56] + 883 .LVL74: +1073:stm32lib/src/stm32f10x_adc.c **** /* Clear the old injected sequnence lenght JL bits */ +1074:stm32lib/src/stm32f10x_adc.c **** tmpreg1 &= JSQR_JL_Reset; +1075:stm32lib/src/stm32f10x_adc.c **** /* Set the injected sequnence lenght JL bits */ +1076:stm32lib/src/stm32f10x_adc.c **** tmpreg2 = Length - 1; +1077:stm32lib/src/stm32f10x_adc.c **** tmpreg1 |= tmpreg2 << 20; + 884 .loc 1 1077 0 + 885 0292 0139 subs r1, r1, #1 + 886 .LVL75: + 887 .loc 1 1074 0 + 888 0294 23F44013 bic r3, r3, #3145728 + 889 .LVL76: + 890 .loc 1 1077 0 + 891 0298 43EA0153 orr r3, r3, r1, lsl #20 + 892 .LVL77: +1078:stm32lib/src/stm32f10x_adc.c **** /* Store the new register value */ +1079:stm32lib/src/stm32f10x_adc.c **** ADCx->JSQR = tmpreg1; + 893 .loc 1 1079 0 + 894 029c 8363 str r3, [r0, #56] +1080:stm32lib/src/stm32f10x_adc.c **** } + 895 .loc 1 1080 0 + 896 029e 7047 bx lr + 897 .LFE48: + 899 .align 2 + 900 .global ADC_SetInjectedOffset + 901 .thumb + 902 .thumb_func + 904 ADC_SetInjectedOffset: + 905 .LFB49: +1081:stm32lib/src/stm32f10x_adc.c **** +1082:stm32lib/src/stm32f10x_adc.c **** /******************************************************************************* +1083:stm32lib/src/stm32f10x_adc.c **** * Function Name : ADC_SetInjectedOffset +1084:stm32lib/src/stm32f10x_adc.c **** * Description : Set the injected channels conversion value offset +1085:stm32lib/src/stm32f10x_adc.c **** * Input : - ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. +1086:stm32lib/src/stm32f10x_adc.c **** * - ADC_InjectedChannel: the ADC injected channel to set its +1087:stm32lib/src/stm32f10x_adc.c **** * offset. +1088:stm32lib/src/stm32f10x_adc.c **** * This parameter can be one of the following values: +1089:stm32lib/src/stm32f10x_adc.c **** * - ADC_InjectedChannel_1: Injected Channel1 selected +1090:stm32lib/src/stm32f10x_adc.c **** * - ADC_InjectedChannel_2: Injected Channel2 selected +1091:stm32lib/src/stm32f10x_adc.c **** * - ADC_InjectedChannel_3: Injected Channel3 selected +1092:stm32lib/src/stm32f10x_adc.c **** * - ADC_InjectedChannel_4: Injected Channel4 selected +1093:stm32lib/src/stm32f10x_adc.c **** * - Offset: the offset value for the selected ADC injected channel +1094:stm32lib/src/stm32f10x_adc.c **** * This parameter must be a 12bit value. +1095:stm32lib/src/stm32f10x_adc.c **** * Output : None +1096:stm32lib/src/stm32f10x_adc.c **** * Return : None +1097:stm32lib/src/stm32f10x_adc.c **** *******************************************************************************/ +1098:stm32lib/src/stm32f10x_adc.c **** void ADC_SetInjectedOffset(ADC_TypeDef* ADCx, u8 ADC_InjectedChannel, u16 Offset) +1099:stm32lib/src/stm32f10x_adc.c **** { + 906 .loc 1 1099 0 + 907 @ args = 0, pretend = 0, frame = 8 + 908 @ frame_needed = 0, uses_anonymous_args = 0 + 909 @ link register save eliminated. + 910 .LVL78: + 911 02a0 82B0 sub sp, sp, #8 + 912 .LCFI3: +1100:stm32lib/src/stm32f10x_adc.c **** /* Check the parameters */ +1101:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_ADC_ALL_PERIPH(ADCx)); +1102:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_ADC_INJECTED_CHANNEL(ADC_InjectedChannel)); +1103:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_ADC_OFFSET(Offset)); +1104:stm32lib/src/stm32f10x_adc.c **** +1105:stm32lib/src/stm32f10x_adc.c **** /* Set the selected injected channel data offset */ +1106:stm32lib/src/stm32f10x_adc.c **** *((vu32 *)((*(u32*)&ADCx) + ADC_InjectedChannel)) = (u32)Offset; + 913 .loc 1 1106 0 + 914 02a2 0A50 str r2, [r1, r0] + 915 .LVL79: +1107:stm32lib/src/stm32f10x_adc.c **** } + 916 .loc 1 1107 0 + 917 02a4 02B0 add sp, sp, #8 + 918 02a6 7047 bx lr + 919 .LFE49: + 921 .align 2 + 922 .global ADC_GetInjectedConversionValue + 923 .thumb + 924 .thumb_func + 926 ADC_GetInjectedConversionValue: + 927 .LFB50: +1108:stm32lib/src/stm32f10x_adc.c **** +1109:stm32lib/src/stm32f10x_adc.c **** /******************************************************************************* +1110:stm32lib/src/stm32f10x_adc.c **** * Function Name : ADC_GetInjectedConversionValue +1111:stm32lib/src/stm32f10x_adc.c **** * Description : Returns the ADC injected channel conversion result +1112:stm32lib/src/stm32f10x_adc.c **** * Input : - ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. +1113:stm32lib/src/stm32f10x_adc.c **** * - ADC_InjectedChannel: the converted ADC injected channel. +1114:stm32lib/src/stm32f10x_adc.c **** * This parameter can be one of the following values: +1115:stm32lib/src/stm32f10x_adc.c **** * - ADC_InjectedChannel_1: Injected Channel1 selected +1116:stm32lib/src/stm32f10x_adc.c **** * - ADC_InjectedChannel_2: Injected Channel2 selected +1117:stm32lib/src/stm32f10x_adc.c **** * - ADC_InjectedChannel_3: Injected Channel3 selected +1118:stm32lib/src/stm32f10x_adc.c **** * - ADC_InjectedChannel_4: Injected Channel4 selected +1119:stm32lib/src/stm32f10x_adc.c **** * Output : None +1120:stm32lib/src/stm32f10x_adc.c **** * Return : The Data conversion value. +1121:stm32lib/src/stm32f10x_adc.c **** *******************************************************************************/ +1122:stm32lib/src/stm32f10x_adc.c **** u16 ADC_GetInjectedConversionValue(ADC_TypeDef* ADCx, u8 ADC_InjectedChannel) +1123:stm32lib/src/stm32f10x_adc.c **** { + 928 .loc 1 1123 0 + 929 @ args = 0, pretend = 0, frame = 8 + 930 @ frame_needed = 0, uses_anonymous_args = 0 + 931 @ link register save eliminated. + 932 .LVL80: + 933 02a8 82B0 sub sp, sp, #8 + 934 .LCFI4: + 935 .loc 1 1123 0 + 936 02aa 0190 str r0, [sp, #4] +1124:stm32lib/src/stm32f10x_adc.c **** /* Check the parameters */ +1125:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_ADC_ALL_PERIPH(ADCx)); +1126:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_ADC_INJECTED_CHANNEL(ADC_InjectedChannel)); +1127:stm32lib/src/stm32f10x_adc.c **** +1128:stm32lib/src/stm32f10x_adc.c **** /* Returns the selected injected channel conversion data value */ +1129:stm32lib/src/stm32f10x_adc.c **** return (u16) (*(vu32*) (((*(u32*)&ADCx) + ADC_InjectedChannel + JDR_Offset))); + 937 .loc 1 1129 0 + 938 02ac 2830 adds r0, r0, #40 + 939 .LVL81: + 940 02ae 4058 ldr r0, [r0, r1] +1130:stm32lib/src/stm32f10x_adc.c **** } + 941 .loc 1 1130 0 + 942 02b0 80B2 uxth r0, r0 + 943 02b2 02B0 add sp, sp, #8 + 944 02b4 7047 bx lr + 945 .LFE50: + 947 02b6 00BF .align 2 + 948 .global ADC_AnalogWatchdogCmd + 949 .thumb + 950 .thumb_func + 952 ADC_AnalogWatchdogCmd: + 953 .LFB51: +1131:stm32lib/src/stm32f10x_adc.c **** +1132:stm32lib/src/stm32f10x_adc.c **** /******************************************************************************* +1133:stm32lib/src/stm32f10x_adc.c **** * Function Name : ADC_AnalogWatchdogCmd +1134:stm32lib/src/stm32f10x_adc.c **** * Description : Enables or disables the analog watchdog on single/all regular +1135:stm32lib/src/stm32f10x_adc.c **** * or injected channels +1136:stm32lib/src/stm32f10x_adc.c **** * Input : - ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. +1137:stm32lib/src/stm32f10x_adc.c **** * - ADC_AnalogWatchdog: the ADC analog watchdog configuration. +1138:stm32lib/src/stm32f10x_adc.c **** * This parameter can be one of the following values: +1139:stm32lib/src/stm32f10x_adc.c **** * - ADC_AnalogWatchdog_SingleRegEnable: Analog watchdog on +1140:stm32lib/src/stm32f10x_adc.c **** * a single regular channel +1141:stm32lib/src/stm32f10x_adc.c **** * - ADC_AnalogWatchdog_SingleInjecEnable: Analog watchdog on +1142:stm32lib/src/stm32f10x_adc.c **** * a single injected channel +1143:stm32lib/src/stm32f10x_adc.c **** * - ADC_AnalogWatchdog_SingleRegOrInjecEnable: Analog +1144:stm32lib/src/stm32f10x_adc.c **** * watchdog on a single regular or injected channel +1145:stm32lib/src/stm32f10x_adc.c **** * - ADC_AnalogWatchdog_AllRegEnable: Analog watchdog on +1146:stm32lib/src/stm32f10x_adc.c **** * all regular channel +1147:stm32lib/src/stm32f10x_adc.c **** * - ADC_AnalogWatchdog_AllInjecEnable: Analog watchdog on +1148:stm32lib/src/stm32f10x_adc.c **** * all injected channel +1149:stm32lib/src/stm32f10x_adc.c **** * - ADC_AnalogWatchdog_AllRegAllInjecEnable: Analog watchdog +1150:stm32lib/src/stm32f10x_adc.c **** * on all regular and injected channels +1151:stm32lib/src/stm32f10x_adc.c **** * - ADC_AnalogWatchdog_None: No channel guarded by the +1152:stm32lib/src/stm32f10x_adc.c **** * analog watchdog +1153:stm32lib/src/stm32f10x_adc.c **** * Output : None +1154:stm32lib/src/stm32f10x_adc.c **** * Return : None +1155:stm32lib/src/stm32f10x_adc.c **** *******************************************************************************/ +1156:stm32lib/src/stm32f10x_adc.c **** void ADC_AnalogWatchdogCmd(ADC_TypeDef* ADCx, u32 ADC_AnalogWatchdog) +1157:stm32lib/src/stm32f10x_adc.c **** { + 954 .loc 1 1157 0 + 955 @ args = 0, pretend = 0, frame = 0 + 956 @ frame_needed = 0, uses_anonymous_args = 0 + 957 @ link register save eliminated. + 958 .LVL82: +1158:stm32lib/src/stm32f10x_adc.c **** u32 tmpreg = 0; +1159:stm32lib/src/stm32f10x_adc.c **** +1160:stm32lib/src/stm32f10x_adc.c **** /* Check the parameters */ +1161:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_ADC_ALL_PERIPH(ADCx)); +1162:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_ADC_ANALOG_WATCHDOG(ADC_AnalogWatchdog)); +1163:stm32lib/src/stm32f10x_adc.c **** +1164:stm32lib/src/stm32f10x_adc.c **** /* Get the old register value */ +1165:stm32lib/src/stm32f10x_adc.c **** tmpreg = ADCx->CR1; + 959 .loc 1 1165 0 + 960 02b8 4368 ldr r3, [r0, #4] + 961 .LVL83: +1166:stm32lib/src/stm32f10x_adc.c **** /* Clear AWDEN, AWDENJ and AWDSGL bits */ +1167:stm32lib/src/stm32f10x_adc.c **** tmpreg &= CR1_AWDMode_Reset; + 962 .loc 1 1167 0 + 963 02ba 23F44003 bic r3, r3, #12582912 + 964 .LVL84: + 965 02be 23F40073 bic r3, r3, #512 +1168:stm32lib/src/stm32f10x_adc.c **** /* Set the analog watchdog enable mode */ +1169:stm32lib/src/stm32f10x_adc.c **** tmpreg |= ADC_AnalogWatchdog; + 966 .loc 1 1169 0 + 967 02c2 1943 orrs r1, r1, r3 + 968 .LVL85: +1170:stm32lib/src/stm32f10x_adc.c **** /* Store the new register value */ +1171:stm32lib/src/stm32f10x_adc.c **** ADCx->CR1 = tmpreg; + 969 .loc 1 1171 0 + 970 02c4 4160 str r1, [r0, #4] +1172:stm32lib/src/stm32f10x_adc.c **** } + 971 .loc 1 1172 0 + 972 02c6 7047 bx lr + 973 .LFE51: + 975 .align 2 + 976 .global ADC_AnalogWatchdogThresholdsConfig + 977 .thumb + 978 .thumb_func + 980 ADC_AnalogWatchdogThresholdsConfig: + 981 .LFB52: +1173:stm32lib/src/stm32f10x_adc.c **** +1174:stm32lib/src/stm32f10x_adc.c **** /******************************************************************************* +1175:stm32lib/src/stm32f10x_adc.c **** * Function Name : ADC_AnalogWatchdogThresholdsConfig +1176:stm32lib/src/stm32f10x_adc.c **** * Description : Configures the high and low thresholds of the analog watchdog. +1177:stm32lib/src/stm32f10x_adc.c **** * Input : - ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. +1178:stm32lib/src/stm32f10x_adc.c **** * - HighThreshold: the ADC analog watchdog High threshold value. +1179:stm32lib/src/stm32f10x_adc.c **** * This parameter must be a 12bit value. +1180:stm32lib/src/stm32f10x_adc.c **** * - LowThreshold: the ADC analog watchdog Low threshold value. +1181:stm32lib/src/stm32f10x_adc.c **** * This parameter must be a 12bit value. +1182:stm32lib/src/stm32f10x_adc.c **** * Output : None +1183:stm32lib/src/stm32f10x_adc.c **** * Return : None +1184:stm32lib/src/stm32f10x_adc.c **** *******************************************************************************/ +1185:stm32lib/src/stm32f10x_adc.c **** void ADC_AnalogWatchdogThresholdsConfig(ADC_TypeDef* ADCx, u16 HighThreshold, +1186:stm32lib/src/stm32f10x_adc.c **** u16 LowThreshold) +1187:stm32lib/src/stm32f10x_adc.c **** { + 982 .loc 1 1187 0 + 983 @ args = 0, pretend = 0, frame = 0 + 984 @ frame_needed = 0, uses_anonymous_args = 0 + 985 @ link register save eliminated. + 986 .LVL86: +1188:stm32lib/src/stm32f10x_adc.c **** /* Check the parameters */ +1189:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_ADC_ALL_PERIPH(ADCx)); +1190:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_ADC_THRESHOLD(HighThreshold)); +1191:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_ADC_THRESHOLD(LowThreshold)); +1192:stm32lib/src/stm32f10x_adc.c **** +1193:stm32lib/src/stm32f10x_adc.c **** /* Set the ADCx high threshold */ +1194:stm32lib/src/stm32f10x_adc.c **** ADCx->HTR = HighThreshold; + 987 .loc 1 1194 0 + 988 02c8 4162 str r1, [r0, #36] +1195:stm32lib/src/stm32f10x_adc.c **** /* Set the ADCx low threshold */ +1196:stm32lib/src/stm32f10x_adc.c **** ADCx->LTR = LowThreshold; + 989 .loc 1 1196 0 + 990 02ca 8262 str r2, [r0, #40] +1197:stm32lib/src/stm32f10x_adc.c **** } + 991 .loc 1 1197 0 + 992 02cc 7047 bx lr + 993 .LFE52: + 995 02ce 00BF .align 2 + 996 .global ADC_AnalogWatchdogSingleChannelConfig + 997 .thumb + 998 .thumb_func + 1000 ADC_AnalogWatchdogSingleChannelConfig: + 1001 .LFB53: +1198:stm32lib/src/stm32f10x_adc.c **** +1199:stm32lib/src/stm32f10x_adc.c **** /******************************************************************************* +1200:stm32lib/src/stm32f10x_adc.c **** * Function Name : ADC_AnalogWatchdogSingleChannelConfig +1201:stm32lib/src/stm32f10x_adc.c **** * Description : Configures the analog watchdog guarded single channel +1202:stm32lib/src/stm32f10x_adc.c **** * Input : - ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. +1203:stm32lib/src/stm32f10x_adc.c **** * - ADC_Channel: the ADC channel to configure for the analog +1204:stm32lib/src/stm32f10x_adc.c **** * watchdog. +1205:stm32lib/src/stm32f10x_adc.c **** * This parameter can be one of the following values: +1206:stm32lib/src/stm32f10x_adc.c **** * - ADC_Channel_0: ADC Channel0 selected +1207:stm32lib/src/stm32f10x_adc.c **** * - ADC_Channel_1: ADC Channel1 selected +1208:stm32lib/src/stm32f10x_adc.c **** * - ADC_Channel_2: ADC Channel2 selected +1209:stm32lib/src/stm32f10x_adc.c **** * - ADC_Channel_3: ADC Channel3 selected +1210:stm32lib/src/stm32f10x_adc.c **** * - ADC_Channel_4: ADC Channel4 selected +1211:stm32lib/src/stm32f10x_adc.c **** * - ADC_Channel_5: ADC Channel5 selected +1212:stm32lib/src/stm32f10x_adc.c **** * - ADC_Channel_6: ADC Channel6 selected +1213:stm32lib/src/stm32f10x_adc.c **** * - ADC_Channel_7: ADC Channel7 selected +1214:stm32lib/src/stm32f10x_adc.c **** * - ADC_Channel_8: ADC Channel8 selected +1215:stm32lib/src/stm32f10x_adc.c **** * - ADC_Channel_9: ADC Channel9 selected +1216:stm32lib/src/stm32f10x_adc.c **** * - ADC_Channel_10: ADC Channel10 selected +1217:stm32lib/src/stm32f10x_adc.c **** * - ADC_Channel_11: ADC Channel11 selected +1218:stm32lib/src/stm32f10x_adc.c **** * - ADC_Channel_12: ADC Channel12 selected +1219:stm32lib/src/stm32f10x_adc.c **** * - ADC_Channel_13: ADC Channel13 selected +1220:stm32lib/src/stm32f10x_adc.c **** * - ADC_Channel_14: ADC Channel14 selected +1221:stm32lib/src/stm32f10x_adc.c **** * - ADC_Channel_15: ADC Channel15 selected +1222:stm32lib/src/stm32f10x_adc.c **** * - ADC_Channel_16: ADC Channel16 selected +1223:stm32lib/src/stm32f10x_adc.c **** * - ADC_Channel_17: ADC Channel17 selected +1224:stm32lib/src/stm32f10x_adc.c **** * Output : None +1225:stm32lib/src/stm32f10x_adc.c **** * Return : None +1226:stm32lib/src/stm32f10x_adc.c **** *******************************************************************************/ +1227:stm32lib/src/stm32f10x_adc.c **** void ADC_AnalogWatchdogSingleChannelConfig(ADC_TypeDef* ADCx, u8 ADC_Channel) +1228:stm32lib/src/stm32f10x_adc.c **** { + 1002 .loc 1 1228 0 + 1003 @ args = 0, pretend = 0, frame = 0 + 1004 @ frame_needed = 0, uses_anonymous_args = 0 + 1005 @ link register save eliminated. + 1006 .LVL87: +1229:stm32lib/src/stm32f10x_adc.c **** u32 tmpreg = 0; +1230:stm32lib/src/stm32f10x_adc.c **** +1231:stm32lib/src/stm32f10x_adc.c **** /* Check the parameters */ +1232:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_ADC_ALL_PERIPH(ADCx)); +1233:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_ADC_CHANNEL(ADC_Channel)); +1234:stm32lib/src/stm32f10x_adc.c **** +1235:stm32lib/src/stm32f10x_adc.c **** /* Get the old register value */ +1236:stm32lib/src/stm32f10x_adc.c **** tmpreg = ADCx->CR1; + 1007 .loc 1 1236 0 + 1008 02d0 4368 ldr r3, [r0, #4] + 1009 .LVL88: +1237:stm32lib/src/stm32f10x_adc.c **** /* Clear the Analog watchdog channel select bits */ +1238:stm32lib/src/stm32f10x_adc.c **** tmpreg &= CR1_AWDCH_Reset; + 1010 .loc 1 1238 0 + 1011 02d2 23F01F03 bic r3, r3, #31 + 1012 .LVL89: +1239:stm32lib/src/stm32f10x_adc.c **** /* Set the Analog watchdog channel */ +1240:stm32lib/src/stm32f10x_adc.c **** tmpreg |= ADC_Channel; + 1013 .loc 1 1240 0 + 1014 02d6 1943 orrs r1, r1, r3 + 1015 .LVL90: +1241:stm32lib/src/stm32f10x_adc.c **** /* Store the new register value */ +1242:stm32lib/src/stm32f10x_adc.c **** ADCx->CR1 = tmpreg; + 1016 .loc 1 1242 0 + 1017 02d8 4160 str r1, [r0, #4] +1243:stm32lib/src/stm32f10x_adc.c **** } + 1018 .loc 1 1243 0 + 1019 02da 7047 bx lr + 1020 .LFE53: + 1022 .align 2 + 1023 .global ADC_TempSensorVrefintCmd + 1024 .thumb + 1025 .thumb_func + 1027 ADC_TempSensorVrefintCmd: + 1028 .LFB54: +1244:stm32lib/src/stm32f10x_adc.c **** +1245:stm32lib/src/stm32f10x_adc.c **** /******************************************************************************* +1246:stm32lib/src/stm32f10x_adc.c **** * Function Name : ADC_TempSensorVrefintCmd +1247:stm32lib/src/stm32f10x_adc.c **** * Description : Enables or disables the temperature sensor and Vrefint channel. +1248:stm32lib/src/stm32f10x_adc.c **** * Input : - NewState: new state of the temperature sensor. +1249:stm32lib/src/stm32f10x_adc.c **** * This parameter can be: ENABLE or DISABLE. +1250:stm32lib/src/stm32f10x_adc.c **** * Output : None +1251:stm32lib/src/stm32f10x_adc.c **** * Return : None +1252:stm32lib/src/stm32f10x_adc.c **** *******************************************************************************/ +1253:stm32lib/src/stm32f10x_adc.c **** void ADC_TempSensorVrefintCmd(FunctionalState NewState) +1254:stm32lib/src/stm32f10x_adc.c **** { + 1029 .loc 1 1254 0 + 1030 @ args = 0, pretend = 0, frame = 0 + 1031 @ frame_needed = 0, uses_anonymous_args = 0 + 1032 @ link register save eliminated. + 1033 .LVL91: +1255:stm32lib/src/stm32f10x_adc.c **** /* Check the parameters */ +1256:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_FUNCTIONAL_STATE(NewState)); +1257:stm32lib/src/stm32f10x_adc.c **** +1258:stm32lib/src/stm32f10x_adc.c **** if (NewState != DISABLE) + 1034 .loc 1 1258 0 + 1035 02dc 20B1 cbz r0, .L103 +1259:stm32lib/src/stm32f10x_adc.c **** { +1260:stm32lib/src/stm32f10x_adc.c **** /* Enable the temperature sensor and Vrefint channel*/ +1261:stm32lib/src/stm32f10x_adc.c **** ADC1->CR2 |= CR2_TSVREFE_Set; + 1036 .loc 1 1261 0 + 1037 02de 054A ldr r2, .L107 + 1038 02e0 9368 ldr r3, [r2, #8] + 1039 02e2 43F40003 orr r3, r3, #8388608 + 1040 02e6 03E0 b .L106 + 1041 .L103: +1262:stm32lib/src/stm32f10x_adc.c **** } +1263:stm32lib/src/stm32f10x_adc.c **** else +1264:stm32lib/src/stm32f10x_adc.c **** { +1265:stm32lib/src/stm32f10x_adc.c **** /* Disable the temperature sensor and Vrefint channel*/ +1266:stm32lib/src/stm32f10x_adc.c **** ADC1->CR2 &= CR2_TSVREFE_Reset; + 1042 .loc 1 1266 0 + 1043 02e8 024A ldr r2, .L107 + 1044 02ea 9368 ldr r3, [r2, #8] + 1045 02ec 23F40003 bic r3, r3, #8388608 + 1046 .L106: + 1047 02f0 9360 str r3, [r2, #8] +1267:stm32lib/src/stm32f10x_adc.c **** } +1268:stm32lib/src/stm32f10x_adc.c **** } + 1048 .loc 1 1268 0 + 1049 02f2 7047 bx lr + 1050 .L108: + 1051 .align 2 + 1052 .L107: + 1053 02f4 00240140 .word 1073816576 + 1054 .LFE54: + 1056 .align 2 + 1057 .global ADC_GetFlagStatus + 1058 .thumb + 1059 .thumb_func + 1061 ADC_GetFlagStatus: + 1062 .LFB55: +1269:stm32lib/src/stm32f10x_adc.c **** +1270:stm32lib/src/stm32f10x_adc.c **** /******************************************************************************* +1271:stm32lib/src/stm32f10x_adc.c **** * Function Name : ADC_GetFlagStatus +1272:stm32lib/src/stm32f10x_adc.c **** * Description : Checks whether the specified ADC flag is set or not. +1273:stm32lib/src/stm32f10x_adc.c **** * Input : - ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. +1274:stm32lib/src/stm32f10x_adc.c **** * - ADC_FLAG: specifies the flag to check. +1275:stm32lib/src/stm32f10x_adc.c **** * This parameter can be one of the following values: +1276:stm32lib/src/stm32f10x_adc.c **** * - ADC_FLAG_AWD: Analog watchdog flag +1277:stm32lib/src/stm32f10x_adc.c **** * - ADC_FLAG_EOC: End of conversion flag +1278:stm32lib/src/stm32f10x_adc.c **** * - ADC_FLAG_JEOC: End of injected group conversion flag +1279:stm32lib/src/stm32f10x_adc.c **** * - ADC_FLAG_JSTRT: Start of injected group conversion flag +1280:stm32lib/src/stm32f10x_adc.c **** * - ADC_FLAG_STRT: Start of regular group conversion flag +1281:stm32lib/src/stm32f10x_adc.c **** * Output : None +1282:stm32lib/src/stm32f10x_adc.c **** * Return : The new state of ADC_FLAG (SET or RESET). +1283:stm32lib/src/stm32f10x_adc.c **** *******************************************************************************/ +1284:stm32lib/src/stm32f10x_adc.c **** FlagStatus ADC_GetFlagStatus(ADC_TypeDef* ADCx, u8 ADC_FLAG) +1285:stm32lib/src/stm32f10x_adc.c **** { + 1063 .loc 1 1285 0 + 1064 @ args = 0, pretend = 0, frame = 0 + 1065 @ frame_needed = 0, uses_anonymous_args = 0 + 1066 @ link register save eliminated. + 1067 .LVL92: +1286:stm32lib/src/stm32f10x_adc.c **** FlagStatus bitstatus = RESET; +1287:stm32lib/src/stm32f10x_adc.c **** +1288:stm32lib/src/stm32f10x_adc.c **** /* Check the parameters */ +1289:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_ADC_ALL_PERIPH(ADCx)); +1290:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_ADC_GET_FLAG(ADC_FLAG)); +1291:stm32lib/src/stm32f10x_adc.c **** +1292:stm32lib/src/stm32f10x_adc.c **** /* Check the status of the specified ADC flag */ +1293:stm32lib/src/stm32f10x_adc.c **** if ((ADCx->SR & ADC_FLAG) != (u8)RESET) + 1068 .loc 1 1293 0 + 1069 02f8 0368 ldr r3, [r0, #0] + 1070 02fa 1942 tst r1, r3 +1294:stm32lib/src/stm32f10x_adc.c **** { +1295:stm32lib/src/stm32f10x_adc.c **** /* ADC_FLAG is set */ +1296:stm32lib/src/stm32f10x_adc.c **** bitstatus = SET; +1297:stm32lib/src/stm32f10x_adc.c **** } +1298:stm32lib/src/stm32f10x_adc.c **** else +1299:stm32lib/src/stm32f10x_adc.c **** { +1300:stm32lib/src/stm32f10x_adc.c **** /* ADC_FLAG is reset */ +1301:stm32lib/src/stm32f10x_adc.c **** bitstatus = RESET; +1302:stm32lib/src/stm32f10x_adc.c **** } +1303:stm32lib/src/stm32f10x_adc.c **** +1304:stm32lib/src/stm32f10x_adc.c **** /* Return the ADC_FLAG status */ +1305:stm32lib/src/stm32f10x_adc.c **** return bitstatus; +1306:stm32lib/src/stm32f10x_adc.c **** } + 1071 .loc 1 1306 0 + 1072 02fc 0CBF ite eq + 1073 02fe 0020 moveq r0, #0 + 1074 0300 0120 movne r0, #1 + 1075 .LVL93: + 1076 0302 7047 bx lr + 1077 .LFE55: + 1079 .align 2 + 1080 .global ADC_ClearFlag + 1081 .thumb + 1082 .thumb_func + 1084 ADC_ClearFlag: + 1085 .LFB56: +1307:stm32lib/src/stm32f10x_adc.c **** +1308:stm32lib/src/stm32f10x_adc.c **** /******************************************************************************* +1309:stm32lib/src/stm32f10x_adc.c **** * Function Name : ADC_ClearFlag +1310:stm32lib/src/stm32f10x_adc.c **** * Description : Clears the ADCx's pending flags. +1311:stm32lib/src/stm32f10x_adc.c **** * Input : - ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. +1312:stm32lib/src/stm32f10x_adc.c **** * - ADC_FLAG: specifies the flag to clear. +1313:stm32lib/src/stm32f10x_adc.c **** * This parameter can be any combination of the following values: +1314:stm32lib/src/stm32f10x_adc.c **** * - ADC_FLAG_AWD: Analog watchdog flag +1315:stm32lib/src/stm32f10x_adc.c **** * - ADC_FLAG_EOC: End of conversion flag +1316:stm32lib/src/stm32f10x_adc.c **** * - ADC_FLAG_JEOC: End of injected group conversion flag +1317:stm32lib/src/stm32f10x_adc.c **** * - ADC_FLAG_JSTRT: Start of injected group conversion flag +1318:stm32lib/src/stm32f10x_adc.c **** * - ADC_FLAG_STRT: Start of regular group conversion flag +1319:stm32lib/src/stm32f10x_adc.c **** * Output : None +1320:stm32lib/src/stm32f10x_adc.c **** * Return : None +1321:stm32lib/src/stm32f10x_adc.c **** *******************************************************************************/ +1322:stm32lib/src/stm32f10x_adc.c **** void ADC_ClearFlag(ADC_TypeDef* ADCx, u8 ADC_FLAG) +1323:stm32lib/src/stm32f10x_adc.c **** { + 1086 .loc 1 1323 0 + 1087 @ args = 0, pretend = 0, frame = 0 + 1088 @ frame_needed = 0, uses_anonymous_args = 0 + 1089 @ link register save eliminated. + 1090 .LVL94: +1324:stm32lib/src/stm32f10x_adc.c **** /* Check the parameters */ +1325:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_ADC_ALL_PERIPH(ADCx)); +1326:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_ADC_CLEAR_FLAG(ADC_FLAG)); +1327:stm32lib/src/stm32f10x_adc.c **** +1328:stm32lib/src/stm32f10x_adc.c **** /* Clear the selected ADC flags */ +1329:stm32lib/src/stm32f10x_adc.c **** ADCx->SR = ~(u32)ADC_FLAG; + 1091 .loc 1 1329 0 + 1092 0304 C943 mvns r1, r1 + 1093 .LVL95: + 1094 0306 0160 str r1, [r0, #0] +1330:stm32lib/src/stm32f10x_adc.c **** } + 1095 .loc 1 1330 0 + 1096 0308 7047 bx lr + 1097 .LFE56: + 1099 030a 00BF .align 2 + 1100 .global ADC_GetITStatus + 1101 .thumb + 1102 .thumb_func + 1104 ADC_GetITStatus: + 1105 .LFB57: +1331:stm32lib/src/stm32f10x_adc.c **** +1332:stm32lib/src/stm32f10x_adc.c **** /******************************************************************************* +1333:stm32lib/src/stm32f10x_adc.c **** * Function Name : ADC_GetITStatus +1334:stm32lib/src/stm32f10x_adc.c **** * Description : Checks whether the specified ADC interrupt has occurred or not. +1335:stm32lib/src/stm32f10x_adc.c **** * Input : - ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. +1336:stm32lib/src/stm32f10x_adc.c **** * - ADC_IT: specifies the ADC interrupt source to check. +1337:stm32lib/src/stm32f10x_adc.c **** * This parameter can be one of the following values: +1338:stm32lib/src/stm32f10x_adc.c **** * - ADC_IT_EOC: End of conversion interrupt mask +1339:stm32lib/src/stm32f10x_adc.c **** * - ADC_IT_AWD: Analog watchdog interrupt mask +1340:stm32lib/src/stm32f10x_adc.c **** * - ADC_IT_JEOC: End of injected conversion interrupt mask +1341:stm32lib/src/stm32f10x_adc.c **** * Output : None +1342:stm32lib/src/stm32f10x_adc.c **** * Return : The new state of ADC_IT (SET or RESET). +1343:stm32lib/src/stm32f10x_adc.c **** *******************************************************************************/ +1344:stm32lib/src/stm32f10x_adc.c **** ITStatus ADC_GetITStatus(ADC_TypeDef* ADCx, u16 ADC_IT) +1345:stm32lib/src/stm32f10x_adc.c **** { + 1106 .loc 1 1345 0 + 1107 @ args = 0, pretend = 0, frame = 0 + 1108 @ frame_needed = 0, uses_anonymous_args = 0 + 1109 @ link register save eliminated. + 1110 .LVL96: +1346:stm32lib/src/stm32f10x_adc.c **** ITStatus bitstatus = RESET; +1347:stm32lib/src/stm32f10x_adc.c **** u32 itmask = 0, enablestatus = 0; +1348:stm32lib/src/stm32f10x_adc.c **** +1349:stm32lib/src/stm32f10x_adc.c **** /* Check the parameters */ +1350:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_ADC_ALL_PERIPH(ADCx)); +1351:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_ADC_GET_IT(ADC_IT)); +1352:stm32lib/src/stm32f10x_adc.c **** +1353:stm32lib/src/stm32f10x_adc.c **** /* Get the ADC IT index */ +1354:stm32lib/src/stm32f10x_adc.c **** itmask = ADC_IT >> 8; +1355:stm32lib/src/stm32f10x_adc.c **** +1356:stm32lib/src/stm32f10x_adc.c **** /* Get the ADC_IT enable bit status */ +1357:stm32lib/src/stm32f10x_adc.c **** enablestatus = (ADCx->CR1 & (u8)ADC_IT) ; + 1111 .loc 1 1357 0 + 1112 030c 4268 ldr r2, [r0, #4] +1358:stm32lib/src/stm32f10x_adc.c **** +1359:stm32lib/src/stm32f10x_adc.c **** /* Check the status of the specified ADC interrupt */ +1360:stm32lib/src/stm32f10x_adc.c **** if (((ADCx->SR & itmask) != (u32)RESET) && enablestatus) + 1113 .loc 1 1360 0 + 1114 030e 0368 ldr r3, [r0, #0] + 1115 0310 13EA1120 ands r0, r3, r1, lsr #8 + 1116 .LVL97: + 1117 0314 04D0 beq .L115 + 1118 0316 CBB2 uxtb r3, r1 + 1119 .LVL98: + 1120 0318 1342 tst r3, r2 + 1121 031a 0CBF ite eq + 1122 031c 0020 moveq r0, #0 + 1123 031e 0120 movne r0, #1 + 1124 .LVL99: + 1125 .L115: + 1126 .LVL100: +1361:stm32lib/src/stm32f10x_adc.c **** { +1362:stm32lib/src/stm32f10x_adc.c **** /* ADC_IT is set */ +1363:stm32lib/src/stm32f10x_adc.c **** bitstatus = SET; +1364:stm32lib/src/stm32f10x_adc.c **** } +1365:stm32lib/src/stm32f10x_adc.c **** else +1366:stm32lib/src/stm32f10x_adc.c **** { +1367:stm32lib/src/stm32f10x_adc.c **** /* ADC_IT is reset */ +1368:stm32lib/src/stm32f10x_adc.c **** bitstatus = RESET; +1369:stm32lib/src/stm32f10x_adc.c **** } +1370:stm32lib/src/stm32f10x_adc.c **** +1371:stm32lib/src/stm32f10x_adc.c **** /* Return the ADC_IT status */ +1372:stm32lib/src/stm32f10x_adc.c **** return bitstatus; +1373:stm32lib/src/stm32f10x_adc.c **** } + 1127 .loc 1 1373 0 + 1128 0320 7047 bx lr + 1129 .LFE57: + 1131 0322 00BF .align 2 + 1132 .global ADC_ClearITPendingBit + 1133 .thumb + 1134 .thumb_func + 1136 ADC_ClearITPendingBit: + 1137 .LFB58: +1374:stm32lib/src/stm32f10x_adc.c **** +1375:stm32lib/src/stm32f10x_adc.c **** /******************************************************************************* +1376:stm32lib/src/stm32f10x_adc.c **** * Function Name : ADC_ClearITPendingBit +1377:stm32lib/src/stm32f10x_adc.c **** * Description : Clears the ADCx’s interrupt pending bits. +1378:stm32lib/src/stm32f10x_adc.c **** * Input : - ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. +1379:stm32lib/src/stm32f10x_adc.c **** * - ADC_IT: specifies the ADC interrupt pending bit to clear. +1380:stm32lib/src/stm32f10x_adc.c **** * This parameter can be any combination of the following values: +1381:stm32lib/src/stm32f10x_adc.c **** * - ADC_IT_EOC: End of conversion interrupt mask +1382:stm32lib/src/stm32f10x_adc.c **** * - ADC_IT_AWD: Analog watchdog interrupt mask +1383:stm32lib/src/stm32f10x_adc.c **** * - ADC_IT_JEOC: End of injected conversion interrupt mask +1384:stm32lib/src/stm32f10x_adc.c **** * Output : None +1385:stm32lib/src/stm32f10x_adc.c **** * Return : None +1386:stm32lib/src/stm32f10x_adc.c **** *******************************************************************************/ +1387:stm32lib/src/stm32f10x_adc.c **** void ADC_ClearITPendingBit(ADC_TypeDef* ADCx, u16 ADC_IT) +1388:stm32lib/src/stm32f10x_adc.c **** { + 1138 .loc 1 1388 0 + 1139 @ args = 0, pretend = 0, frame = 0 + 1140 @ frame_needed = 0, uses_anonymous_args = 0 + 1141 @ link register save eliminated. + 1142 .LVL101: +1389:stm32lib/src/stm32f10x_adc.c **** u8 itmask = 0; +1390:stm32lib/src/stm32f10x_adc.c **** +1391:stm32lib/src/stm32f10x_adc.c **** /* Check the parameters */ +1392:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_ADC_ALL_PERIPH(ADCx)); +1393:stm32lib/src/stm32f10x_adc.c **** assert_param(IS_ADC_IT(ADC_IT)); +1394:stm32lib/src/stm32f10x_adc.c **** +1395:stm32lib/src/stm32f10x_adc.c **** /* Get the ADC IT index */ +1396:stm32lib/src/stm32f10x_adc.c **** itmask = (u8)(ADC_IT >> 8); +1397:stm32lib/src/stm32f10x_adc.c **** +1398:stm32lib/src/stm32f10x_adc.c **** /* Clear the selected ADC interrupt pending bits */ +1399:stm32lib/src/stm32f10x_adc.c **** ADCx->SR = ~(u32)itmask; + 1143 .loc 1 1399 0 + 1144 0324 6FEA1121 mvn r1, r1, lsr #8 + 1145 .LVL102: + 1146 0328 0160 str r1, [r0, #0] +1400:stm32lib/src/stm32f10x_adc.c **** } + 1147 .loc 1 1400 0 + 1148 032a 7047 bx lr + 1149 .LFE58: + 1151 .align 2 + 1152 .global ADC_DeInit + 1153 .thumb + 1154 .thumb_func + 1156 ADC_DeInit: + 1157 .LFB23: + 1158 .loc 1 131 0 + 1159 @ args = 0, pretend = 0, frame = 8 + 1160 @ frame_needed = 0, uses_anonymous_args = 0 + 1161 .LVL103: + 1162 032c 07B5 push {r0, r1, r2, lr} + 1163 .LCFI5: + 1164 .LVL104: + 1165 .loc 1 135 0 + 1166 032e 134B ldr r3, .L126 + 1167 .loc 1 131 0 + 1168 0330 0190 str r0, [sp, #4] + 1169 .LVL105: + 1170 .loc 1 135 0 + 1171 0332 9842 cmp r0, r3 + 1172 .LVL106: + 1173 0334 0FD0 beq .L122 + 1174 0336 03F5A053 add r3, r3, #5120 + 1175 033a 9842 cmp r0, r3 + 1176 033c 13D0 beq .L123 + 1177 033e A3F5C053 sub r3, r3, #6144 + 1178 0342 9842 cmp r0, r3 + 1179 0344 19D1 bne .L124 + 1180 .loc 1 139 0 + 1181 0346 4FF40070 mov r0, #512 + 1182 034a 0121 movs r1, #1 + 1183 034c FFF7FEFF bl RCC_APB2PeriphResetCmd + 1184 .loc 1 141 0 + 1185 0350 4FF40070 mov r0, #512 + 1186 0354 0EE0 b .L125 + 1187 .L122: + 1188 .loc 1 146 0 + 1189 0356 4FF48060 mov r0, #1024 + 1190 035a 0121 movs r1, #1 + 1191 035c FFF7FEFF bl RCC_APB2PeriphResetCmd + 1192 .loc 1 148 0 + 1193 0360 4FF48060 mov r0, #1024 + 1194 0364 06E0 b .L125 + 1195 .L123: + 1196 .loc 1 153 0 + 1197 0366 4FF40040 mov r0, #32768 + 1198 036a 0121 movs r1, #1 + 1199 036c FFF7FEFF bl RCC_APB2PeriphResetCmd + 1200 .loc 1 155 0 + 1201 0370 4FF40040 mov r0, #32768 + 1202 .L125: + 1203 0374 0021 movs r1, #0 + 1204 0376 FFF7FEFF bl RCC_APB2PeriphResetCmd + 1205 .L124: + 1206 .loc 1 161 0 + 1207 037a 0EBD pop {r1, r2, r3, pc} + 1208 .L127: + 1209 .align 2 + 1210 .L126: + 1211 037c 00280140 .word 1073817600 + 1212 .LFE23: + 1566 .Letext0: +DEFINED SYMBOLS + *ABS*:00000000 stm32f10x_adc.c + /tmp/cc8JynLs.s:22 .text:00000000 $t + /tmp/cc8JynLs.s:27 .text:00000000 ADC_Init + /tmp/cc8JynLs.s:90 .text:00000044 $d + /tmp/cc8JynLs.s:93 .text:00000048 $t + /tmp/cc8JynLs.s:98 .text:00000048 ADC_StructInit + /tmp/cc8JynLs.s:128 .text:0000005c ADC_Cmd + /tmp/cc8JynLs.s:156 .text:00000070 ADC_DMACmd + /tmp/cc8JynLs.s:184 .text:00000084 ADC_ITConfig + /tmp/cc8JynLs.s:215 .text:0000009c ADC_ResetCalibration + /tmp/cc8JynLs.s:235 .text:000000a8 ADC_GetResetCalibrationStatus + /tmp/cc8JynLs.s:255 .text:000000b0 ADC_StartCalibration + /tmp/cc8JynLs.s:275 .text:000000bc ADC_GetCalibrationStatus + /tmp/cc8JynLs.s:295 .text:000000c4 ADC_SoftwareStartConvCmd + /tmp/cc8JynLs.s:323 .text:000000d8 ADC_GetSoftwareStartConvStatus + /tmp/cc8JynLs.s:343 .text:000000e0 ADC_DiscModeChannelCountConfig + /tmp/cc8JynLs.s:373 .text:000000f0 ADC_DiscModeCmd + /tmp/cc8JynLs.s:401 .text:00000104 ADC_RegularChannelConfig + /tmp/cc8JynLs.s:550 .text:000001a0 ADC_ExternalTrigConvCmd + /tmp/cc8JynLs.s:578 .text:000001b4 ADC_GetConversionValue + /tmp/cc8JynLs.s:598 .text:000001bc ADC_GetDualModeConversionValue + /tmp/cc8JynLs.s:612 .text:000001c4 $d + /tmp/cc8JynLs.s:615 .text:000001c8 $t + /tmp/cc8JynLs.s:620 .text:000001c8 ADC_AutoInjectedConvCmd + /tmp/cc8JynLs.s:648 .text:000001dc ADC_InjectedDiscModeCmd + /tmp/cc8JynLs.s:676 .text:000001f0 ADC_ExternalTrigInjectedConvConfig + /tmp/cc8JynLs.s:703 .text:000001fc ADC_ExternalTrigInjectedConvCmd + /tmp/cc8JynLs.s:731 .text:00000210 ADC_SoftwareStartInjectedConvCmd + /tmp/cc8JynLs.s:759 .text:00000224 ADC_GetSoftwareStartInjectedConvCmdStatus + /tmp/cc8JynLs.s:779 .text:0000022c ADC_InjectedChannelConfig + /tmp/cc8JynLs.s:874 .text:00000290 ADC_InjectedSequencerLengthConfig + /tmp/cc8JynLs.s:904 .text:000002a0 ADC_SetInjectedOffset + /tmp/cc8JynLs.s:926 .text:000002a8 ADC_GetInjectedConversionValue + /tmp/cc8JynLs.s:952 .text:000002b8 ADC_AnalogWatchdogCmd + /tmp/cc8JynLs.s:980 .text:000002c8 ADC_AnalogWatchdogThresholdsConfig + /tmp/cc8JynLs.s:1000 .text:000002d0 ADC_AnalogWatchdogSingleChannelConfig + /tmp/cc8JynLs.s:1027 .text:000002dc ADC_TempSensorVrefintCmd + /tmp/cc8JynLs.s:1053 .text:000002f4 $d + /tmp/cc8JynLs.s:1056 .text:000002f8 $t + /tmp/cc8JynLs.s:1061 .text:000002f8 ADC_GetFlagStatus + /tmp/cc8JynLs.s:1084 .text:00000304 ADC_ClearFlag + /tmp/cc8JynLs.s:1104 .text:0000030c ADC_GetITStatus + /tmp/cc8JynLs.s:1136 .text:00000324 ADC_ClearITPendingBit + /tmp/cc8JynLs.s:1156 .text:0000032c ADC_DeInit + /tmp/cc8JynLs.s:1211 .text:0000037c $d + +UNDEFINED SYMBOLS +RCC_APB2PeriphResetCmd |