]> git.sur5r.net Git - freertos/blob - Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32f10x_dac.h
New driver files for Connectivity Line.
[freertos] / Demo / Common / drivers / ST / STM32F10xFWLib / inc / stm32f10x_dac.h
1 /**\r
2   ******************************************************************************\r
3   * @file  stm32f10x_dac.h\r
4   * @author  MCD Application Team\r
5   * @version  V3.0.0\r
6   * @date  04/06/2009\r
7   * @brief  This file contains all the functions prototypes for the DAC firmware \r
8   *         library.\r
9   ******************************************************************************\r
10   * @copy\r
11   *\r
12   * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS\r
13   * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE\r
14   * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY\r
15   * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING\r
16   * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE\r
17   * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.\r
18   *\r
19   * <h2><center>&copy; COPYRIGHT 2009 STMicroelectronics</center></h2>\r
20   */ \r
21 \r
22 /* Define to prevent recursive inclusion -------------------------------------*/\r
23 #ifndef __STM32F10x_DAC_H\r
24 #define __STM32F10x_DAC_H\r
25 \r
26 /* Includes ------------------------------------------------------------------*/\r
27 #include "stm32f10x.h"\r
28 \r
29 /** @addtogroup StdPeriph_Driver\r
30   * @{\r
31   */\r
32 \r
33 /** @addtogroup DAC\r
34   * @{\r
35   */\r
36 \r
37 /** @defgroup DAC_Exported_Types\r
38   * @{\r
39   */\r
40 \r
41 /** \r
42   * @brief  DAC Init structure definition\r
43   */\r
44 \r
45 typedef struct\r
46 {\r
47   uint32_t DAC_Trigger;\r
48   uint32_t DAC_WaveGeneration;\r
49   uint32_t DAC_LFSRUnmask_TriangleAmplitude;\r
50   uint32_t DAC_OutputBuffer; \r
51 }DAC_InitTypeDef;\r
52 \r
53 /**\r
54   * @}\r
55   */\r
56 \r
57 /** @defgroup DAC_Exported_Constants\r
58   * @{\r
59   */\r
60 \r
61 /** @defgroup DAC_trigger_selection \r
62   * @{\r
63   */\r
64 \r
65 #define DAC_Trigger_None                   ((uint32_t)0x00000000)\r
66 #define DAC_Trigger_T6_TRGO                ((uint32_t)0x00000004)\r
67 #define DAC_Trigger_T8_TRGO                ((uint32_t)0x0000000C)\r
68 #define DAC_Trigger_T7_TRGO                ((uint32_t)0x00000014)\r
69 #define DAC_Trigger_T5_TRGO                ((uint32_t)0x0000001C)\r
70 #define DAC_Trigger_T2_TRGO                ((uint32_t)0x00000024)\r
71 #define DAC_Trigger_T4_TRGO                ((uint32_t)0x0000002C)\r
72 #define DAC_Trigger_Ext_IT9                ((uint32_t)0x00000034)\r
73 #define DAC_Trigger_Software               ((uint32_t)0x0000003C)\r
74 \r
75 #define IS_DAC_TRIGGER(TRIGGER) (((TRIGGER) == DAC_Trigger_None) || \\r
76                                  ((TRIGGER) == DAC_Trigger_T6_TRGO) || \\r
77                                  ((TRIGGER) == DAC_Trigger_T8_TRGO) || \\r
78                                  ((TRIGGER) == DAC_Trigger_T7_TRGO) || \\r
79                                  ((TRIGGER) == DAC_Trigger_T5_TRGO) || \\r
80                                  ((TRIGGER) == DAC_Trigger_T2_TRGO) || \\r
81                                  ((TRIGGER) == DAC_Trigger_T4_TRGO) || \\r
82                                  ((TRIGGER) == DAC_Trigger_Ext_IT9) || \\r
83                                  ((TRIGGER) == DAC_Trigger_Software))\r
84 \r
85 /**\r
86   * @}\r
87   */\r
88 \r
89 /** @defgroup DAC_wave_generation \r
90   * @{\r
91   */\r
92 \r
93 #define DAC_WaveGeneration_None            ((uint32_t)0x00000000)\r
94 #define DAC_WaveGeneration_Noise           ((uint32_t)0x00000040)\r
95 #define DAC_WaveGeneration_Triangle        ((uint32_t)0x00000080)\r
96 #define IS_DAC_GENERATE_WAVE(WAVE) (((WAVE) == DAC_WaveGeneration_None) || \\r
97                                     ((WAVE) == DAC_WaveGeneration_Noise) || \\r
98                                     ((WAVE) == DAC_WaveGeneration_Triangle))\r
99 /**\r
100   * @}\r
101   */\r
102 \r
103 /** @defgroup DAC_noise_wave_generation_mask_triangle_wave_generation_max_amplitude \r
104   * @{\r
105   */\r
106 \r
107 #define DAC_LFSRUnmask_Bit0                ((uint32_t)0x00000000)\r
108 #define DAC_LFSRUnmask_Bits1_0             ((uint32_t)0x00000100)\r
109 #define DAC_LFSRUnmask_Bits2_0             ((uint32_t)0x00000200)\r
110 #define DAC_LFSRUnmask_Bits3_0             ((uint32_t)0x00000300)\r
111 #define DAC_LFSRUnmask_Bits4_0             ((uint32_t)0x00000400)\r
112 #define DAC_LFSRUnmask_Bits5_0             ((uint32_t)0x00000500)\r
113 #define DAC_LFSRUnmask_Bits6_0             ((uint32_t)0x00000600)\r
114 #define DAC_LFSRUnmask_Bits7_0             ((uint32_t)0x00000700)\r
115 #define DAC_LFSRUnmask_Bits8_0             ((uint32_t)0x00000800)\r
116 #define DAC_LFSRUnmask_Bits9_0             ((uint32_t)0x00000900)\r
117 #define DAC_LFSRUnmask_Bits10_0            ((uint32_t)0x00000A00)\r
118 #define DAC_LFSRUnmask_Bits11_0            ((uint32_t)0x00000B00)\r
119 #define DAC_TriangleAmplitude_1            ((uint32_t)0x00000000)\r
120 #define DAC_TriangleAmplitude_3            ((uint32_t)0x00000100)\r
121 #define DAC_TriangleAmplitude_7            ((uint32_t)0x00000200)\r
122 #define DAC_TriangleAmplitude_15           ((uint32_t)0x00000300)\r
123 #define DAC_TriangleAmplitude_31           ((uint32_t)0x00000400)\r
124 #define DAC_TriangleAmplitude_63           ((uint32_t)0x00000500)\r
125 #define DAC_TriangleAmplitude_127          ((uint32_t)0x00000600)\r
126 #define DAC_TriangleAmplitude_255          ((uint32_t)0x00000700)\r
127 #define DAC_TriangleAmplitude_511          ((uint32_t)0x00000800)\r
128 #define DAC_TriangleAmplitude_1023         ((uint32_t)0x00000900)\r
129 #define DAC_TriangleAmplitude_2047         ((uint32_t)0x00000A00)\r
130 #define DAC_TriangleAmplitude_4095         ((uint32_t)0x00000B00)\r
131 \r
132 #define IS_DAC_LFSR_UNMASK_TRIANGLE_AMPLITUDE(VALUE) (((VALUE) == DAC_LFSRUnmask_Bit0) || \\r
133                                                       ((VALUE) == DAC_LFSRUnmask_Bits1_0) || \\r
134                                                       ((VALUE) == DAC_LFSRUnmask_Bits2_0) || \\r
135                                                       ((VALUE) == DAC_LFSRUnmask_Bits3_0) || \\r
136                                                       ((VALUE) == DAC_LFSRUnmask_Bits4_0) || \\r
137                                                       ((VALUE) == DAC_LFSRUnmask_Bits5_0) || \\r
138                                                       ((VALUE) == DAC_LFSRUnmask_Bits6_0) || \\r
139                                                       ((VALUE) == DAC_LFSRUnmask_Bits7_0) || \\r
140                                                       ((VALUE) == DAC_LFSRUnmask_Bits8_0) || \\r
141                                                       ((VALUE) == DAC_LFSRUnmask_Bits9_0) || \\r
142                                                       ((VALUE) == DAC_LFSRUnmask_Bits10_0) || \\r
143                                                       ((VALUE) == DAC_LFSRUnmask_Bits11_0) || \\r
144                                                       ((VALUE) == DAC_TriangleAmplitude_1) || \\r
145                                                       ((VALUE) == DAC_TriangleAmplitude_3) || \\r
146                                                       ((VALUE) == DAC_TriangleAmplitude_7) || \\r
147                                                       ((VALUE) == DAC_TriangleAmplitude_15) || \\r
148                                                       ((VALUE) == DAC_TriangleAmplitude_31) || \\r
149                                                       ((VALUE) == DAC_TriangleAmplitude_63) || \\r
150                                                       ((VALUE) == DAC_TriangleAmplitude_127) || \\r
151                                                       ((VALUE) == DAC_TriangleAmplitude_255) || \\r
152                                                       ((VALUE) == DAC_TriangleAmplitude_511) || \\r
153                                                       ((VALUE) == DAC_TriangleAmplitude_1023) || \\r
154                                                       ((VALUE) == DAC_TriangleAmplitude_2047) || \\r
155                                                       ((VALUE) == DAC_TriangleAmplitude_4095))\r
156 /**\r
157   * @}\r
158   */\r
159 \r
160 /** @defgroup DAC_output_buffer \r
161   * @{\r
162   */\r
163 \r
164 #define DAC_OutputBuffer_Enable            ((uint32_t)0x00000000)\r
165 #define DAC_OutputBuffer_Disable           ((uint32_t)0x00000002)\r
166 #define IS_DAC_OUTPUT_BUFFER_STATE(STATE) (((STATE) == DAC_OutputBuffer_Enable) || \\r
167                                            ((STATE) == DAC_OutputBuffer_Disable))\r
168 /**\r
169   * @}\r
170   */\r
171 \r
172 /** @defgroup DAC_Channel_selection \r
173   * @{\r
174   */\r
175 \r
176 #define DAC_Channel_1                      ((uint32_t)0x00000000)\r
177 #define DAC_Channel_2                      ((uint32_t)0x00000010)\r
178 #define IS_DAC_CHANNEL(CHANNEL) (((CHANNEL) == DAC_Channel_1) || \\r
179                                  ((CHANNEL) == DAC_Channel_2))\r
180 /**\r
181   * @}\r
182   */\r
183 \r
184 /** @defgroup DAC_data_alignement \r
185   * @{\r
186   */\r
187 \r
188 #define DAC_Align_12b_R                    ((uint32_t)0x00000000)\r
189 #define DAC_Align_12b_L                    ((uint32_t)0x00000004)\r
190 #define DAC_Align_8b_R                     ((uint32_t)0x00000008)\r
191 #define IS_DAC_ALIGN(ALIGN) (((ALIGN) == DAC_Align_12b_R) || \\r
192                              ((ALIGN) == DAC_Align_12b_L) || \\r
193                              ((ALIGN) == DAC_Align_8b_R))\r
194 /**\r
195   * @}\r
196   */\r
197 \r
198 /** @defgroup DAC_wave_generation \r
199   * @{\r
200   */\r
201 \r
202 #define DAC_Wave_Noise                     ((uint32_t)0x00000040)\r
203 #define DAC_Wave_Triangle                  ((uint32_t)0x00000080)\r
204 #define IS_DAC_WAVE(WAVE) (((WAVE) == DAC_Wave_Noise) || \\r
205                            ((WAVE) == DAC_Wave_Triangle))\r
206 /**\r
207   * @}\r
208   */\r
209 \r
210 /** @defgroup DAC_data \r
211   * @{\r
212   */\r
213 \r
214 #define IS_DAC_DATA(DATA) ((DATA) <= 0xFFF0) \r
215 /**\r
216   * @}\r
217   */\r
218 \r
219 /**\r
220   * @}\r
221   */\r
222 \r
223 /** @defgroup DAC_Exported_Macros\r
224   * @{\r
225   */\r
226 \r
227 /**\r
228   * @}\r
229   */\r
230 \r
231 /** @defgroup DAC_Exported_Functions\r
232   * @{\r
233   */\r
234 \r
235 void DAC_DeInit(void);\r
236 void DAC_Init(uint32_t DAC_Channel, DAC_InitTypeDef* DAC_InitStruct);\r
237 void DAC_StructInit(DAC_InitTypeDef* DAC_InitStruct);\r
238 void DAC_Cmd(uint32_t DAC_Channel, FunctionalState NewState);\r
239 void DAC_DMACmd(uint32_t DAC_Channel, FunctionalState NewState);\r
240 void DAC_SoftwareTriggerCmd(uint32_t DAC_Channel, FunctionalState NewState);\r
241 void DAC_DualSoftwareTriggerCmd(FunctionalState NewState);\r
242 void DAC_WaveGenerationCmd(uint32_t DAC_Channel, uint32_t DAC_Wave, FunctionalState NewState);\r
243 void DAC_SetChannel1Data(uint32_t DAC_Align, uint16_t Data);\r
244 void DAC_SetChannel2Data(uint32_t DAC_Align, uint16_t Data);\r
245 void DAC_SetDualChannelData(uint32_t DAC_Align, uint16_t Data2, uint16_t Data1);\r
246 uint16_t DAC_GetDataOutputValue(uint32_t DAC_Channel);\r
247 \r
248 #endif /*__STM32F10x_DAC_H */\r
249 /**\r
250   * @}\r
251   */\r
252 \r
253 /**\r
254   * @}\r
255   */\r
256 \r
257 /**\r
258   * @}\r
259   */\r
260 \r
261 /******************* (C) COPYRIGHT 2009 STMicroelectronics *****END OF FILE****/\r