]> git.sur5r.net Git - freertos/blob - FreeRTOS/Demo/ARM7_STR75x_GCC/STLibrary/inc/75x_adc.h
Add FreeRTOS-Plus directory.
[freertos] / FreeRTOS / Demo / ARM7_STR75x_GCC / STLibrary / inc / 75x_adc.h
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
8 * History:\r
9 * 07/17/2006 : V1.0\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
19 \r
20 /* Define to prevent recursive inclusion -------------------------------------*/\r
21 #ifndef __75x_ADC_H\r
22 #define __75x_ADC_H\r
23 \r
24 /* Includes ------------------------------------------------------------------*/\r
25 #include "75x_map.h"\r
26 \r
27 /* Exported types ------------------------------------------------------------*/\r
28 /* ADC Init structure definition */\r
29 typedef struct\r
30 {\r
31   u16 ADC_ConversionMode;\r
32   u16 ADC_ExtTrigger;\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
38  }ADC_InitTypeDef;\r
39 \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
54 \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
69 \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
75 \r
76 /* ADC Channels */\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
93 \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
111 \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
118 \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
124 \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
129 \r
130 /* Start Conversion */\r
131 #define ADC_Conversion_Start   0x0001\r
132 #define ADC_Conversion_Stop    0xFFFE\r
133 \r
134 /* ADC Conversion Modes */\r
135 #define ADC_ConversionMode_Scan     0x8000\r
136 #define ADC_ConversionMode_OneShot  0x7FFF\r
137 \r
138 /* Auto Clock Off */\r
139 #define ADC_AutoClockOff_Enable  0x4000\r
140 #define ADC_AutoClockOff_Disable 0xBFFF\r
141 \r
142 /* Calibration */\r
143 #define ADC_Calibration_ON       0x0002\r
144 #define ADC_CalibAverage_Disable 0x0020\r
145 #define ADC_CalibAverage_Enable  0xFFDF\r
146 \r
147 /* Exported macro ------------------------------------------------------------*/\r
148 /* Exported functions --------------------------------------------------------*/\r
149 \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
174 \r
175 #endif /*__75x_ADC_H */\r
176 \r
177 /******************* (C) COPYRIGHT 2006 STMicroelectronics *****END OF FILE****/\r