1 /******************** (C) COPYRIGHT 2006 STMicroelectronics ********************
\r
2 * File Name : 75x_adc.h
\r
3 * Author : MCD Application Team
\r
4 * Date First Issued : 03/10/2006
\r
5 * Description : This file contains all the functions prototypes for the
\r
6 * ADC software library.
\r
7 ********************************************************************************
\r
10 * 03/10/2006 : V0.1
\r
11 ********************************************************************************
\r
12 * THE PRESENT SOFTWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
\r
13 * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
\r
14 * AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
\r
15 * INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
\r
16 * CONTENT OF SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
\r
17 * INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
\r
18 *******************************************************************************/
\r
20 /* Define to prevent recursive inclusion -------------------------------------*/
\r
24 /* Includes ------------------------------------------------------------------*/
\r
25 #include "75x_map.h"
\r
27 /* Exported types ------------------------------------------------------------*/
\r
28 /* ADC Init structure definition */
\r
31 u16 ADC_ConversionMode;
\r
33 u16 ADC_AutoClockOff;
\r
34 u8 ADC_SamplingPrescaler;
\r
35 u8 ADC_ConversionPrescaler;
\r
36 u8 ADC_FirstChannel;
\r
37 u8 ADC_ChannelNumber;
\r
40 /* Exported constants --------------------------------------------------------*/
\r
41 /* ADC control status flags */
\r
42 #define ADC_FLAG_ECH 0x0001
\r
43 #define ADC_FLAG_EOC 0x0002
\r
44 #define ADC_FLAG_JECH 0x0004
\r
45 #define ADC_FLAG_JEOC 0x0008
\r
46 #define ADC_FLAG_AnalogWatchdog0_LowThreshold 0x0010
\r
47 #define ADC_FLAG_AnalogWatchdog0_HighThreshold 0x0020
\r
48 #define ADC_FLAG_AnalogWatchdog1_LowThreshold 0x0040
\r
49 #define ADC_FLAG_AnalogWatchdog1_HighThreshold 0x0080
\r
50 #define ADC_FLAG_AnalogWatchdog2_LowThreshold 0x0100
\r
51 #define ADC_FLAG_AnalogWatchdog2_HighThreshold 0x0200
\r
52 #define ADC_FLAG_AnalogWatchdog3_LowThreshold 0x0400
\r
53 #define ADC_FLAG_AnalogWatchdog3_HighThreshold 0x0800
\r
55 /* ADC Interrupt sources */
\r
56 #define ADC_IT_ECH 0x0001
\r
57 #define ADC_IT_EOC 0x0002
\r
58 #define ADC_IT_JECH 0x0004
\r
59 #define ADC_IT_JEOC 0x0008
\r
60 #define ADC_IT_AnalogWatchdog0_LowThreshold 0x0010
\r
61 #define ADC_IT_AnalogWatchdog0_HighThreshold 0x0020
\r
62 #define ADC_IT_AnalogWatchdog1_LowThreshold 0x0040
\r
63 #define ADC_IT_AnalogWatchdog1_HighThreshold 0x0080
\r
64 #define ADC_IT_AnalogWatchdog2_LowThreshold 0x0100
\r
65 #define ADC_IT_AnalogWatchdog2_HighThreshold 0x0200
\r
66 #define ADC_IT_AnalogWatchdog3_LowThreshold 0x0400
\r
67 #define ADC_IT_AnalogWatchdog3_HighThreshold 0x0800
\r
68 #define ADC_IT_ALL 0x0FFF
\r
70 /* ADC Watchdogs Thresholds */
\r
71 #define ADC_AnalogWatchdog0 0x0030
\r
72 #define ADC_AnalogWatchdog1 0x00C0
\r
73 #define ADC_AnalogWatchdog2 0x0300
\r
74 #define ADC_AnalogWatchdog3 0x0C00
\r
77 #define ADC_CHANNEL0 0x0
\r
78 #define ADC_CHANNEL1 0x1
\r
79 #define ADC_CHANNEL2 0x2
\r
80 #define ADC_CHANNEL3 0x3
\r
81 #define ADC_CHANNEL4 0x4
\r
82 #define ADC_CHANNEL5 0x5
\r
83 #define ADC_CHANNEL6 0x6
\r
84 #define ADC_CHANNEL7 0x7
\r
85 #define ADC_CHANNEL8 0x8
\r
86 #define ADC_CHANNEL9 0x9
\r
87 #define ADC_CHANNEL10 0xA
\r
88 #define ADC_CHANNEL11 0xB
\r
89 #define ADC_CHANNEL12 0xC
\r
90 #define ADC_CHANNEL13 0xD
\r
91 #define ADC_CHANNEL14 0xE
\r
92 #define ADC_CHANNEL15 0xF
\r
94 /* ADC DMA Channels */
\r
95 #define ADC_DMA_CHANNEL0 0x0001
\r
96 #define ADC_DMA_CHANNEL1 0x0002
\r
97 #define ADC_DMA_CHANNEL2 0x0004
\r
98 #define ADC_DMA_CHANNEL3 0x0008
\r
99 #define ADC_DMA_CHANNEL4 0x0010
\r
100 #define ADC_DMA_CHANNEL5 0x0020
\r
101 #define ADC_DMA_CHANNEL6 0x0040
\r
102 #define ADC_DMA_CHANNEL7 0x0080
\r
103 #define ADC_DMA_CHANNEL8 0x0100
\r
104 #define ADC_DMA_CHANNEL9 0x0200
\r
105 #define ADC_DMA_CHANNEL10 0x0400
\r
106 #define ADC_DMA_CHANNEL11 0x0800
\r
107 #define ADC_DMA_CHANNEL12 0x1000
\r
108 #define ADC_DMA_CHANNEL13 0x2000
\r
109 #define ADC_DMA_CHANNEL14 0x4000
\r
110 #define ADC_DMA_CHANNEL15 0x8000
\r
112 /* Trigger conversion detection */
\r
113 #define ADC_ExtTrigger_LowLevel 0x4FFF
\r
114 #define ADC_ExtTrigger_HighLevel 0x5000
\r
115 #define ADC_ExtTrigger_FallingEdge 0x6000
\r
116 #define ADC_ExtTrigger_RisingEdge 0x7000
\r
117 #define ADC_ExtTrigger_Disable 0x8FFF
\r
119 /* DMA enable config */
\r
120 #define ADC_DMA_ExtTrigger_HighLevel 0x6000
\r
121 #define ADC_DMA_ExtTrigger_LowLevel 0x4FFF
\r
122 #define ADC_DMA_Enable 0x8000
\r
123 #define ADC_DMA_Disable 0x3FFF
\r
125 /* Injected Trigger conversion detection */
\r
126 #define ADC_Injec_ExtTrigger_RisingEdge 0x6000
\r
127 #define ADC_Injec_ExtTrigger_FallingEdge 0xDFFF
\r
128 #define ADC_Injec_ExtTrigger_Disable 0x3FFF
\r
130 /* Start Conversion */
\r
131 #define ADC_Conversion_Start 0x0001
\r
132 #define ADC_Conversion_Stop 0xFFFE
\r
134 /* ADC Conversion Modes */
\r
135 #define ADC_ConversionMode_Scan 0x8000
\r
136 #define ADC_ConversionMode_OneShot 0x7FFF
\r
138 /* Auto Clock Off */
\r
139 #define ADC_AutoClockOff_Enable 0x4000
\r
140 #define ADC_AutoClockOff_Disable 0xBFFF
\r
143 #define ADC_Calibration_ON 0x0002
\r
144 #define ADC_CalibAverage_Disable 0x0020
\r
145 #define ADC_CalibAverage_Enable 0xFFDF
\r
147 /* Exported macro ------------------------------------------------------------*/
\r
148 /* Exported functions --------------------------------------------------------*/
\r
150 void ADC_DeInit(void);
\r
151 void ADC_Init(ADC_InitTypeDef *ADC_InitStruct);
\r
152 void ADC_StructInit(ADC_InitTypeDef *ADC_InitStruct);
\r
153 void ADC_Cmd(FunctionalState NewState);
\r
154 void ADC_StartCalibration(u16 ADC_CalibAverage);
\r
155 FlagStatus ADC_GetCalibrationStatus(void);
\r
156 void ADC_ConversionCmd(u16 ADC_Conversion);
\r
157 FlagStatus ADC_GetSTARTBitStatus(void);
\r
158 void ADC_AutoClockOffConfig(FunctionalState NewState);
\r
159 u16 ADC_GetConversionValue(u8 ADC_CHANNEL);
\r
160 void ADC_ITConfig(u16 ADC_IT, FunctionalState NewState);
\r
161 void ADC_AnalogWatchdogConfig(u16 ADC_AnalogWatchdog, u8 ADC_CHANNEL,
\r
162 u16 LowThreshold, u16 HighThreshold);
\r
163 void ADC_AnalogWatchdogCmd(u16 ADC_AnalogWatchdog, FunctionalState NewState);
\r
164 u16 ADC_GetAnalogWatchdogResult(u16 ADC_AnalogWatchdog);
\r
165 void ADC_StartInjectedConversion(void);
\r
166 void ADC_InjectedConversionConfig(u16 ADC_Injec_ExtTrigger, u8 FirstChannel, u8 ChannelNumber);
\r
167 void ADC_DMAConfig(u16 ADC_DMA_CHANNEL, FunctionalState NewState);
\r
168 void ADC_DMACmd(u16 ADC_DMA);
\r
169 u16 ADC_GetDMAFirstEnabledChannel(void);
\r
170 FlagStatus ADC_GetFlagStatus(u16 ADC_FLAG);
\r
171 void ADC_ClearFlag(u16 ADC_FLAG);
\r
172 ITStatus ADC_GetITStatus(u16 ADC_IT);
\r
173 void ADC_ClearITPendingBit(u16 ADC_IT);
\r
175 #endif /*__75x_ADC_H */
\r
177 /******************* (C) COPYRIGHT 2006 STMicroelectronics *****END OF FILE****/
\r