aboutsummaryrefslogtreecommitdiffstats
path: root/src/stm32lib/src/stm32f10x_adc.lst
diff options
context:
space:
mode:
Diffstat (limited to 'src/stm32lib/src/stm32f10x_adc.lst')
-rw-r--r--src/stm32lib/src/stm32f10x_adc.lst2584
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