📄 stm32f10x_adc.lst
字号:
###############################################################################
# #
# 30/Jul/2008 14:37:38 #
# IAR ARM ANSI C/C++ Compiler V5.11.0.20622/W32 EVALUATION #
# Copyright 1999-2007 IAR Systems. All rights reserved. #
# #
# Cpu mode = thumb #
# Endian = little #
# Source file = E:\library\src\stm32f10x_adc.c #
# Command line = E:\library\src\stm32f10x_adc.c -D EMB_FLASH -lCN #
# E:\ELE\yten\pro\Debug\List\ -lb #
# E:\ELE\yten\pro\Debug\List\ -o #
# E:\ELE\yten\pro\Debug\Obj\ --no_cse --no_unroll #
# --no_inline --no_code_motion --no_tbaa --no_clustering #
# --no_scheduling --debug --endian little --cpu Cortex-M3 #
# -e --fpu None --dlib_config "C:\Program Files\IAR #
# Systems\Embedded Workbench 5.0 #
# Evaluation\ARM\INC\DLib_Config_Normal.h" -I #
# E:\ELE\yten\pro\ -I E:\ELE\yten\pro\..\LIBRARY\INC\ -I #
# "C:\Program Files\IAR Systems\Embedded Workbench 5.0 #
# Evaluation\ARM\INC\" --section .text=.XML -On #
# List file = E:\ELE\yten\pro\Debug\List\stm32f10x_adc.lst #
# Object file = E:\ELE\yten\pro\Debug\Obj\stm32f10x_adc.o #
# #
# #
###############################################################################
E:\library\src\stm32f10x_adc.c
1 /******************** (C) COPYRIGHT 2007 STMicroelectronics ********************
2 * File Name : stm32f10x_adc.c
3 * Author : MCD Application Team
4 * Version : V1.0
5 * Date : 10/08/2007
6 * Description : This file provides all the ADC firmware functions.
7 ********************************************************************************
8 * THE PRESENT SOFTWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
9 * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
10 * AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
11 * INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
12 * CONTENT OF SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
13 * INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
14 *******************************************************************************/
15
16 /* Includes ------------------------------------------------------------------*/
17 #include "stm32f10x_adc.h"
18 #include "stm32f10x_rcc.h"
19
20 /* Private typedef -----------------------------------------------------------*/
21 /* Private define ------------------------------------------------------------*/
22 /* ADC ADON mask */
23 #define CR2_ADON_Set ((u32)0x00000001)
24 #define CR2_ADON_Reset ((u32)0xFFFFFFFE)
25
26 /* ADC DMA mask */
27 #define CR2_DMA_Set ((u16)0x0100)
28 #define CR2_DMA_Reset ((u16)0xFEFF)
29
30 /* ADC RSTCAL mask */
31 #define CR2_RSTCAL_Set ((u16)0x0008)
32
33 /* ADC CAL mask */
34 #define CR2_CAL_Set ((u16)0x0004)
35
36 /* ADC SWSTRT mask */
37 #define CR2_SWSTRT_Set ((u32)0x00400000)
38
39 /* ADC DISCNUM mask */
40 #define CR1_DISCNUM_Reset ((u32)0xFFFF1FFF)
41
42 /* ADC DISCEN mask */
43 #define CR1_DISCEN_Set ((u32)0x00000800)
44 #define CR1_DISCEN_Reset ((u32)0xFFFFF7FF)
45
46 /* ADC EXTTRIG mask */
47 #define CR2_EXTTRIG_Set ((u32)0x00100000)
48 #define CR2_EXTTRIG_Reset ((u32)0xFFEFFFFF)
49
50 /* ADC Software start mask */
51 #define CR2_EXTTRIG_SWSTRT_Set ((u32)0x00500000)
52 #define CR2_EXTTRIG_SWSTRT_Reset ((u32)0xFFAFFFFF)
53
54 /* ADC JAUTO mask */
55 #define CR1_JAUTO_Set ((u32)0x00000400)
56 #define CR1_JAUTO_Reset ((u32)0xFFFFFBFF)
57
58 /* ADC JDISCEN mask */
59 #define CR1_JDISCEN_Set ((u32)0x00001000)
60 #define CR1_JDISCEN_Reset ((u32)0xFFFFEFFF)
61
62 /* ADC JEXTSEL mask */
63 #define CR2_JEXTSEL_Reset ((u32)0xFFFF8FFF)
64
65 /* ADC JEXTTRIG mask */
66 #define CR2_JEXTTRIG_Set ((u32)0x00008000)
67 #define CR2_JEXTTRIG_Reset ((u32)0xFFFF7FFF)
68
69 /* ADC JSWSTRT mask */
70 #define CR2_JSWSTRT_Set ((u32)0x00200000)
71
72 /* ADC injected software start mask */
73 #define CR2_JEXTTRIG_JSWSTRT_Set ((u32)0x00208000)
74 #define CR2_JEXTTRIG_JSWSTRT_Reset ((u32)0xFFDF7FFF)
75
76 /* ADC AWDCH mask */
77 #define CR1_AWDCH_Reset ((u32)0xFFFFFFE0)
78
79 /* ADC SQx mask */
80 #define SQR3_SQ_Set ((u8)0x1F)
81 #define SQR2_SQ_Set ((u8)0x1F)
82 #define SQR1_SQ_Set ((u8)0x1F)
83
84 /* ADC JSQx mask */
85 #define JSQR_JSQ_Set ((u8)0x1F)
86
87 /* ADC JL mask */
88 #define JSQR_JL_Reset ((u32)0xFFCFFFFF)
89
90 /* ADC SMPx mask */
91 #define SMPR1_SMP_Set ((u8)0x07)
92 #define SMPR2_SMP_Set ((u8)0x07)
93
94 /* ADC Analog watchdog enable mode mask */
95 #define CR1_AWDMode_Reset ((u32)0xFF3FFDFF)
96
97 /* ADC TSPD mask */
98 #define CR2_TSVREFE_Set ((u32)0x00800000)
99 #define CR2_TSVREFE_Reset ((u32)0xFF7FFFFF)
100
101 /* ADC JDRx registers= offset */
102 #define JDR_Offset ((u8)0x28)
103
104 /* ADC registers Masks */
105 #define CR1_CLEAR_Mask ((u32)0xFFF0FEFF)
106 #define CR2_CLEAR_Mask ((u32)0xFFF1F7FD)
107 #define SQR1_CLEAR_Mask ((u32)0xFF0FFFFF)
108
109 /* Private macro -------------------------------------------------------------*/
110 /* Private variables ---------------------------------------------------------*/
111 /* Private function prototypes -----------------------------------------------*/
112 /* Private functions ---------------------------------------------------------*/
113
114 /*******************************************************************************
115 * Function Name : ADC_DeInit
116 * Description : Deinitializes the ADCx peripheral registers to their default
117 * reset values.
118 * Input : - ADCx: where x can be 1 or 2 to select the ADC peripheral.
119 * Output : None
120 * Return : None
121 *******************************************************************************/
\ In section .XML, align 4, keep-with-next
122 void ADC_DeInit(ADC_TypeDef* ADCx)
123 {
\ ADC_DeInit:
\ 00000000 10B5 PUSH {R4,LR}
\ 00000002 0400 MOVS R4,R0
124 switch (*(u32*)&ADCx)
\ 00000004 2000 MOVS R0,R4
\ 00000006 0F49 LDR.N R1,??ADC_DeInit_0 ;; 0x40012400
\ 00000008 401A SUBS R0,R0,R1
\ 0000000A 04D0 BEQ.N ??ADC_DeInit_1
\ 0000000C 5FF48061 MOVS R1,#+1024
\ 00000010 401A SUBS R0,R0,R1
\ 00000012 0BD0 BEQ.N ??ADC_DeInit_2
\ 00000014 14E0 B.N ??ADC_DeInit_3
125 {
126 case ADC1_BASE:
127 /* Enable ADC1 reset state */
128 RCC_APB2PeriphResetCmd(RCC_APB2Periph_ADC1, ENABLE);
\ ??ADC_DeInit_1:
\ 00000016 0121 MOVS R1,#+1
\ 00000018 5FF40070 MOVS R0,#+512
\ 0000001C ........ BL RCC_APB2PeriphResetCmd
129 /* Release ADC1 from reset state */
130 RCC_APB2PeriphResetCmd(RCC_APB2Periph_ADC1, DISABLE);
\ 00000020 0021 MOVS R1,#+0
\ 00000022 5FF40070 MOVS R0,#+512
\ 00000026 ........ BL RCC_APB2PeriphResetCmd
\ 0000002A 09E0 B.N ??ADC_DeInit_3
131 break;
132
133 case ADC2_BASE:
134 /* Enable ADC2 reset state */
135 RCC_APB2PeriphResetCmd(RCC_APB2Periph_ADC2, ENABLE);
\ ??ADC_DeInit_2:
\ 0000002C 0121 MOVS R1,#+1
\ 0000002E 5FF48060 MOVS R0,#+1024
\ 00000032 ........ BL RCC_APB2PeriphResetCmd
136 /* Release ADC2 from reset state */
137 RCC_APB2PeriphResetCmd(RCC_APB2Periph_ADC2, DISABLE);
\ 00000036 0021 MOVS R1,#+0
\ 00000038 5FF48060 MOVS R0,#+1024
\ 0000003C ........ BL RCC_APB2PeriphResetCmd
138 break;
139
140 default:
141 break;
142 }
143 }
\ ??ADC_DeInit_3:
\ 00000040 10BD POP {R4,PC} ;; return
\ 00000042 00BF Nop
\ ??ADC_DeInit_0:
\ 00000044 00240140 DC32 0x40012400
144
145 /*******************************************************************************
146 * Function Name : ADC_Init
147 * Description : Initializes the ADCx peripheral according to the specified parameters
148 * in the ADC_InitStruct.
149 * Input : - ADCx: where x can be 1 or 2 to select the ADC peripheral.
150 * - ADC_InitStruct: pointer to an ADC_InitTypeDef structure that
151 * contains the configuration information for the specified
152 * ADC peripheral.
153 * Output : None
154 * Return : None
155 ******************************************************************************/
\ In section .XML, align 4, keep-with-next
156 void ADC_Init(ADC_TypeDef* ADCx, ADC_InitTypeDef* ADC_InitStruct)
157 {
\ ADC_Init:
\ 00000000 30B4 PUSH {R4,R5}
158 u32 tmpreg1 = 0;
\ 00000002 0024 MOVS R4,#+0
\ 00000004 2300 MOVS R3,R4
159 u8 tmpreg2 = 0;
\ 00000006 0024 MOVS R4,#+0
\ 00000008 2200 MOVS R2,R4
160
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -