31 #ifndef __NIIETCM4_ADC_H
32 #define __NIIETCM4_ADC_H
56 #define ADC_Channel_None ((uint32_t)0x00000000)
57 #define ADC_Channel_0 ((uint32_t)0x00000001)
58 #define ADC_Channel_1 ((uint32_t)0x00000002)
59 #define ADC_Channel_2 ((uint32_t)0x00000004)
60 #define ADC_Channel_3 ((uint32_t)0x00000008)
61 #define ADC_Channel_4 ((uint32_t)0x00000010)
62 #define ADC_Channel_5 ((uint32_t)0x00000020)
63 #define ADC_Channel_6 ((uint32_t)0x00000040)
64 #define ADC_Channel_7 ((uint32_t)0x00000080)
65 #define ADC_Channel_8 ((uint32_t)0x00000100)
66 #define ADC_Channel_9 ((uint32_t)0x00000200)
67 #define ADC_Channel_10 ((uint32_t)0x00000400)
68 #define ADC_Channel_11 ((uint32_t)0x00000800)
69 #define ADC_Channel_12 ((uint32_t)0x00001000)
70 #define ADC_Channel_13 ((uint32_t)0x00002000)
71 #define ADC_Channel_14 ((uint32_t)0x00004000)
72 #define ADC_Channel_15 ((uint32_t)0x00008000)
73 #define ADC_Channel_16 ((uint32_t)0x00010000)
74 #define ADC_Channel_17 ((uint32_t)0x00020000)
75 #define ADC_Channel_18 ((uint32_t)0x00040000)
76 #define ADC_Channel_19 ((uint32_t)0x00080000)
77 #define ADC_Channel_20 ((uint32_t)0x00100000)
78 #define ADC_Channel_21 ((uint32_t)0x00200000)
79 #define ADC_Channel_22 ((uint32_t)0x00400000)
80 #define ADC_Channel_23 ((uint32_t)0x00800000)
81 #define ADC_Channel_All ((uint32_t)0x00FFFFFF)
86 #define IS_ADC_CHANNEL(CHANNEL) (((CHANNEL) & (uint32_t)0xFF000000) == ((uint32_t)0x000000))
96 #define ADC_DC_None ((uint32_t)0x00000000)
97 #define ADC_DC_0 ((uint32_t)0x00000001)
98 #define ADC_DC_1 ((uint32_t)0x00000002)
99 #define ADC_DC_2 ((uint32_t)0x00000004)
100 #define ADC_DC_3 ((uint32_t)0x00000008)
101 #define ADC_DC_4 ((uint32_t)0x00000010)
102 #define ADC_DC_5 ((uint32_t)0x00000020)
103 #define ADC_DC_6 ((uint32_t)0x00000040)
104 #define ADC_DC_7 ((uint32_t)0x00000080)
105 #define ADC_DC_8 ((uint32_t)0x00000100)
106 #define ADC_DC_9 ((uint32_t)0x00000200)
107 #define ADC_DC_10 ((uint32_t)0x00000400)
108 #define ADC_DC_11 ((uint32_t)0x00000800)
109 #define ADC_DC_12 ((uint32_t)0x00001000)
110 #define ADC_DC_13 ((uint32_t)0x00002000)
111 #define ADC_DC_14 ((uint32_t)0x00004000)
112 #define ADC_DC_15 ((uint32_t)0x00008000)
113 #define ADC_DC_16 ((uint32_t)0x00010000)
114 #define ADC_DC_17 ((uint32_t)0x00020000)
115 #define ADC_DC_18 ((uint32_t)0x00040000)
116 #define ADC_DC_19 ((uint32_t)0x00080000)
117 #define ADC_DC_20 ((uint32_t)0x00100000)
118 #define ADC_DC_21 ((uint32_t)0x00200000)
119 #define ADC_DC_22 ((uint32_t)0x00400000)
120 #define ADC_DC_23 ((uint32_t)0x00800000)
121 #define ADC_DC_All ((uint32_t)0x00FFFFFF)
127 #define IS_ADC_DC(DC) (((DC) & (uint32_t)0xFF000000) == ((uint32_t)0x000000))
137 #define ADC_SEQ_0 ((uint32_t)0x00000001)
138 #define ADC_SEQ_1 ((uint32_t)0x00000002)
139 #define ADC_SEQ_2 ((uint32_t)0x00000004)
140 #define ADC_SEQ_3 ((uint32_t)0x00000008)
141 #define ADC_SEQ_4 ((uint32_t)0x00000010)
142 #define ADC_SEQ_5 ((uint32_t)0x00000020)
143 #define ADC_SEQ_6 ((uint32_t)0x00000040)
144 #define ADC_SEQ_7 ((uint32_t)0x00000080)
150 #define IS_ADC_SEQ(SEQ) (((SEQ) != (uint32_t)0x00000000) && (((SEQ) & (uint32_t)0xFFFFFF00) == ((uint32_t)0x00)))
169 #define IS_ADC_SEQ_IT_RATE(IT_RATE) (((IT_RATE) > ((uint32_t)0x0)) && ((IT_RATE) < ((uint32_t)0x100)))
176 #define IS_ADC_SEQ_CONVERSION_COUNT(CONVERSION_COUNT) (((CONVERSION_COUNT) > ((uint32_t)0x0)) && ((CONVERSION_COUNT) <= ((uint32_t)0x100)))
182 #define IS_ADC_SEQ_CONVERSION_DELAY(CONVERSION_DELAY) ((CONVERSION_DELAY) < ((uint32_t)0x1000000))
189 #define IS_ADC_PHASE(PHASE) ((PHASE) < ((uint32_t)0x1000))
195 #define IS_ADC_DC_THRESHOLD(THRESHOLD) ((THRESHOLD) < ((uint32_t)0x1000))
222 #define IS_ADC_SEQ_START_EVENT(START_EVENT) (((START_EVENT) == ADC_SEQ_StartEvent_SWReq) || \
223 ((START_EVENT) == ADC_SEQ_StartEvent_CMP0) || \
224 ((START_EVENT) == ADC_SEQ_StartEvent_CMP1) || \
225 ((START_EVENT) == ADC_SEQ_StartEvent_CMP2) || \
226 ((START_EVENT) == ADC_SEQ_StartEvent_ITGPIO) || \
227 ((START_EVENT) == ADC_SEQ_StartEvent_TIM) || \
228 ((START_EVENT) == ADC_SEQ_StartEvent_PWM0) || \
229 ((START_EVENT) == ADC_SEQ_StartEvent_PWM1) || \
230 ((START_EVENT) == ADC_SEQ_StartEvent_PWM2) || \
231 ((START_EVENT) == ADC_SEQ_StartEvent_PWM3) || \
232 ((START_EVENT) == ADC_SEQ_StartEvent_PWM4) || \
233 ((START_EVENT) == ADC_SEQ_StartEvent_PWM5) || \
234 ((START_EVENT) == ADC_SEQ_StartEvent_Cycle))
255 #define IS_ADC_AVERAGE(AVERAGE) (((AVERAGE) == ADC_Average_Disable) || \
256 ((AVERAGE) == ADC_Average_2) || \
257 ((AVERAGE) == ADC_Average_4) || \
258 ((AVERAGE) == ADC_Average_8) || \
259 ((AVERAGE) == ADC_Average_16) || \
260 ((AVERAGE) == ADC_Average_32) || \
261 ((AVERAGE) == ADC_Average_64))
300 #define IS_ADC_DC_CHANNEL(CHANNEL) (((CHANNEL) == ADC_DC_Channel_0) || \
301 ((CHANNEL) == ADC_DC_Channel_1) || \
302 ((CHANNEL) == ADC_DC_Channel_2) || \
303 ((CHANNEL) == ADC_DC_Channel_3) || \
304 ((CHANNEL) == ADC_DC_Channel_4) || \
305 ((CHANNEL) == ADC_DC_Channel_5) || \
306 ((CHANNEL) == ADC_DC_Channel_6) || \
307 ((CHANNEL) == ADC_DC_Channel_7) || \
308 ((CHANNEL) == ADC_DC_Channel_8) || \
309 ((CHANNEL) == ADC_DC_Channel_9) || \
310 ((CHANNEL) == ADC_DC_Channel_10) || \
311 ((CHANNEL) == ADC_DC_Channel_11) || \
312 ((CHANNEL) == ADC_DC_Channel_12) || \
313 ((CHANNEL) == ADC_DC_Channel_13) || \
314 ((CHANNEL) == ADC_DC_Channel_14) || \
315 ((CHANNEL) == ADC_DC_Channel_15) || \
316 ((CHANNEL) == ADC_DC_Channel_16) || \
317 ((CHANNEL) == ADC_DC_Channel_17) || \
318 ((CHANNEL) == ADC_DC_Channel_18) || \
319 ((CHANNEL) == ADC_DC_Channel_19) || \
320 ((CHANNEL) == ADC_DC_Channel_20) || \
321 ((CHANNEL) == ADC_DC_Channel_21) || \
322 ((CHANNEL) == ADC_DC_Channel_22) || \
323 ((CHANNEL) == ADC_DC_Channel_23) || \
324 ((CHANNEL) == ADC_DC_Channel_None))
342 #define IS_ADC_DC_MODE(MODE) (((MODE) == ADC_DC_Mode_Single) || \
343 ((MODE) == ADC_DC_Mode_Multiple) || \
344 ((MODE) == ADC_DC_Mode_SingleHyst) || \
345 ((MODE) == ADC_DC_Mode_MultipleHyst))
362 #define IS_ADC_DC_CONDITION(CONDITION) (((CONDITION) == ADC_DC_Condition_Low) || \
363 ((CONDITION) == ADC_DC_Condition_Window) || \
364 ((CONDITION) == ADC_DC_Condition_High))
384 #define IS_ADC_SEQ_FIFO_LEVEL(FIFO_LEVEL) (((FIFO_LEVEL) == ADC_SEQ_FIFOLevel_1) || \
385 ((FIFO_LEVEL) == ADC_SEQ_FIFOLevel_2) || \
386 ((FIFO_LEVEL) == ADC_SEQ_FIFOLevel_4) || \
387 ((FIFO_LEVEL) == ADC_SEQ_FIFOLevel_8) || \
388 ((FIFO_LEVEL) == ADC_SEQ_FIFOLevel_16) || \
389 ((FIFO_LEVEL) == ADC_SEQ_FIFOLevel_32))
427 #define IS_ADC_DC_MODULE(MODULE) (((MODULE) == ADC_DC_Module_0) || \
428 ((MODULE) == ADC_DC_Module_1) || \
429 ((MODULE) == ADC_DC_Module_2) || \
430 ((MODULE) == ADC_DC_Module_3) || \
431 ((MODULE) == ADC_DC_Module_4) || \
432 ((MODULE) == ADC_DC_Module_5) || \
433 ((MODULE) == ADC_DC_Module_6) || \
434 ((MODULE) == ADC_DC_Module_7) || \
435 ((MODULE) == ADC_DC_Module_8) || \
436 ((MODULE) == ADC_DC_Module_9) || \
437 ((MODULE) == ADC_DC_Module_10) || \
438 ((MODULE) == ADC_DC_Module_11) || \
439 ((MODULE) == ADC_DC_Module_12) || \
440 ((MODULE) == ADC_DC_Module_13) || \
441 ((MODULE) == ADC_DC_Module_14) || \
442 ((MODULE) == ADC_DC_Module_15) || \
443 ((MODULE) == ADC_DC_Module_16) || \
444 ((MODULE) == ADC_DC_Module_17) || \
445 ((MODULE) == ADC_DC_Module_18) || \
446 ((MODULE) == ADC_DC_Module_19) || \
447 ((MODULE) == ADC_DC_Module_20) || \
448 ((MODULE) == ADC_DC_Module_21) || \
449 ((MODULE) == ADC_DC_Module_22) || \
450 ((MODULE) == ADC_DC_Module_23))
472 #define IS_ADC_SEQ_MODULE(MODULE) (((MODULE) == ADC_SEQ_Module_0) || \
473 ((MODULE) == ADC_SEQ_Module_1) || \
474 ((MODULE) == ADC_SEQ_Module_2) || \
475 ((MODULE) == ADC_SEQ_Module_3) || \
476 ((MODULE) == ADC_SEQ_Module_4) || \
477 ((MODULE) == ADC_SEQ_Module_5) || \
478 ((MODULE) == ADC_SEQ_Module_6) || \
479 ((MODULE) == ADC_SEQ_Module_7))
505 #define IS_ADC_MODULE(MODULE) (((MODULE) == ADC_Module_0) || \
506 ((MODULE) == ADC_Module_1) || \
507 ((MODULE) == ADC_Module_2) || \
508 ((MODULE) == ADC_Module_3) || \
509 ((MODULE) == ADC_Module_4) || \
510 ((MODULE) == ADC_Module_5) || \
511 ((MODULE) == ADC_Module_6) || \
512 ((MODULE) == ADC_Module_7) || \
513 ((MODULE) == ADC_Module_8) || \
514 ((MODULE) == ADC_Module_9) || \
515 ((MODULE) == ADC_Module_10) || \
516 ((MODULE) == ADC_Module_11))
532 #define IS_ADC_RESOLUTION(RESOLUTION) (((RESOLUTION) == ADC_Resolution_12bit) || \
533 ((RESOLUTION) == ADC_Resolution_10bit))
549 #define IS_ADC_MEASURE(MEASURE) (((MEASURE) == ADC_Measure_Single) || \
550 ((MEASURE) == ADC_Measure_Diff))
567 #define IS_ADC_MODE(MODE) (((MODE) == ADC_Mode_Powerdown) || \
568 ((MODE) == ADC_Mode_StandBy) || \
569 ((MODE) == ADC_Mode_Active))
ADC_DC_Condition_TypeDef ADC_DC_Condition
ADC_DC_Mode_TypeDef
Режим срабатывания компаратора.
FunctionalState ADC_SEQ_SWReqEn
void ADC_SEQ_SWReq()
Программный запуск измерений всех разрешенных секвенсоров.
ADC_SEQ_Module_TypeDef
Выбор модуля секвенсора.
FlagStatus ADC_SEQ_FIFOFullStatus(ADC_SEQ_Module_TypeDef ADC_SEQ_Module)
Проверка флага заполнения буффера секвенсора. Если флаг установлен, то значит что буффер заполнен и в...
void ADC_DC_Init(ADC_DC_Module_TypeDef ADC_DC_Module, ADC_DC_Init_TypeDef *ADC_DC_InitStruct)
Инициализирует выбранный модуль цифрового компаратора согласно параметрам структуры ADC_DC_InitStruct...
FlagStatus ADC_SEQ_FIFOEmptyStatus(ADC_SEQ_Module_TypeDef ADC_SEQ_Module)
Проверка флага пустоты буффера секвенсора. Флаг установлен когда буфер полностью пуст.
ADC_Resolution_TypeDef
Выбор разрядности модуля АЦП.
FunctionalState
Описывает логическое состояние периферии. Используется для операций включения/выключения периферийных...
uint32_t ADC_SEQ_GetConversionCount(ADC_SEQ_Module_TypeDef ADC_SEQ_Module)
Получение количества измерений, проведенных модулями АЦП с момента запуска секвенсора.
ADC_SEQ_StartEvent_TypeDef ADC_SEQ_StartEvent
void ADC_DC_ITCmd(ADC_DC_Module_TypeDef ADC_DC_Module, FunctionalState State)
Включение прерывания компаратора и одновременное маскирование сигнала этого прерывания. При этом, эти же действия можно выполнить путем ручного вызовова соответствующих функций: ADC_DC_ITGenCmd и ADC_DC_ITMaskCmd.
uint32_t ADC_SEQ_ConversionCount
uint32_t ADC_SEQ_GetFIFOData(ADC_SEQ_Module_TypeDef ADC_SEQ_Module)
Получение результата измерений из буффера секвенсора.
void ADC_DC_ITConfig(ADC_DC_Module_TypeDef ADC_DC_Module, ADC_DC_Mode_TypeDef ADC_DC_Mode, ADC_DC_Condition_TypeDef ADC_DC_Condition)
Настройка условия вызова прерывания цифрового компаратора. Условия вызова прерывания и условия срабат...
ADC_Mode_TypeDef ADC_Mode
ADC_DC_Module_TypeDef
Выбор модуля цифрового компаратора.
void ADC_DC_TrigStatusClear(ADC_DC_Module_TypeDef ADC_DC_Module)
Cброс выходного триггера цифрового компаратора.
ADC_Measure_TypeDef ADC_Measure_B
FlagStatus
Описывает возможные состояния флага при запросе его статуса.
uint32_t ADC_DC_GetLastData(ADC_DC_Module_TypeDef ADC_DC_Module)
Значение результата измерения, которое последним использовалось компаратором при проверке на соответс...
void ADC_SEQ_FIFOEmptyStatusClear(ADC_SEQ_Module_TypeDef ADC_SEQ_Module)
Cброс флага пустоты буффера секвенсора.
void ADC_SEQ_Cmd(ADC_SEQ_Module_TypeDef ADC_SEQ_Module, FunctionalState State)
Включение секвенсора.
void ADC_SEQ_DMAErrorStatusClear(ADC_SEQ_Module_TypeDef ADC_SEQ_Module)
Сброс статуса ошибки DMA.
void ADC_Init(ADC_Module_TypeDef ADC_Module, ADC_Init_TypeDef *ADC_InitStruct)
Инициализирует выбранный модуль АЦП согласно параметрам структуры ADC_InitStruct. ...
void ADC_SEQ_ITConfig(ADC_SEQ_Module_TypeDef ADC_SEQ_Module, uint32_t ADC_SEQ_ITRate, FunctionalState ADC_SEQ_ITCountSEQRst)
Настройка вызова прерывания секвенсора.
FlagStatus ADC_DC_TrigStatus(ADC_DC_Module_TypeDef ADC_DC_Module)
Проверка состояния выходного триггера компаратора.
void ADC_SEQ_DMACmd(ADC_SEQ_Module_TypeDef ADC_SEQ_Module, FunctionalState State)
Включает для выбранного секвенсора генерирование запросов DMA.
FlagStatus ADC_SEQ_DMAErrorStatus(ADC_SEQ_Module_TypeDef ADC_SEQ_Module)
Проверка статуса ошибки, когда при наличии двух обрабатываемых запросов DMA от выбранного секвенсора...
void ADC_SEQ_ITStatusClear(ADC_SEQ_Module_TypeDef ADC_SEQ_Module)
Общий сброс флагов прерывания секвенсора. Сбрасывает как маскированные, так и немаскированные флаги...
ADC_Module_TypeDef
Выбор модуля АЦП.
ADC_Measure_TypeDef
Выбор режима работы АЦП.
void ADC_SEQ_StructInit(ADC_SEQ_Init_TypeDef *ADC_SEQ_InitStruct)
Заполнение каждого члена структуры ADC_SEQ_InitStruct значениями по умолчанию.
FlagStatus ADC_DC_ITMaskedStatus(ADC_DC_Module_TypeDef ADC_DC_Module)
Проверка флагов маскированных прерываний.
FlagStatus ADC_SEQ_ITRawStatus(ADC_SEQ_Module_TypeDef ADC_SEQ_Module)
Проверка флагов немаскированных прерываний.
void ADC_SEQ_DeInit(ADC_SEQ_Module_TypeDef ADC_SEQ_Module)
Устанавливает все регистры выбранного секвенсора значениями по умолчанию.
void ADC_SEQ_ITCmd(ADC_SEQ_Module_TypeDef ADC_SEQ_Module, FunctionalState State)
Включение прерывания секвенсора.
uint32_t ADC_SEQ_GetFIFOLoad(ADC_SEQ_Module_TypeDef ADC_SEQ_Module)
Получение количества измерений, сохраненных в буфере секвенсора.
ADC_Resolution_TypeDef ADC_Resolution
void ADC_SEQ_FIFOFullStatusClear(ADC_SEQ_Module_TypeDef ADC_SEQ_Module)
Cброс флага заполнения буффера секвенсора.
uint32_t ADC_SEQ_ConversionDelay
void ADC_DC_Cmd(ADC_DC_Module_TypeDef ADC_DC_Module, FunctionalState State)
Включение выходного триггера цифрового компаратора.
uint32_t ADC_DC_ThresholdLow
Структура инициализации модулей АЦП
FlagStatus ADC_DC_ITRawStatus(ADC_DC_Module_TypeDef ADC_DC_Module)
Проверка флагов немаскированных прерываний.
ADC_Mode_TypeDef
Выбор режима работы АЦП.
FlagStatus ADC_SEQ_ITMaskedStatus(ADC_SEQ_Module_TypeDef ADC_SEQ_Module)
Проверка флагов маскированных прерываний.
void ADC_StructInit(ADC_Init_TypeDef *ADC_InitStruct)
Заполнение каждого члена структуры ADC_InitStruct значениями по умолчанию.
void ADC_SEQ_ITCountRst(ADC_SEQ_Module_TypeDef ADC_SEQ_Module)
Сброс счетчика прерываний секвенсора.
void ADC_DeInit(ADC_Module_TypeDef ADC_Module)
Устанавливает все регистры модуля АЦП значениями по умолчанию.
void ADC_DC_ITStatusClear(ADC_DC_Module_TypeDef ADC_DC_Module)
Общий сброс флагов прерывания цифрового компаратора. Сбрасывает как маскированные, так и немаскированные флаги.
Это главный заголовочный файл драйвера, обычно включаемый в main.c.
void ADC_SEQ_DMAConfig(ADC_SEQ_Module_TypeDef ADC_SEQ_Module, ADC_SEQ_FIFOLevel_TypeDef ADC_SEQ_FIFOLevel)
Конфигуририрует выбранный секвенсор для работы с DMA.
ADC_Measure_TypeDef ADC_Measure_A
uint32_t ADC_DC_ThresholdHigh
ADC_SEQ_StartEvent_TypeDef
События запуска секвенсоров.
ADC_Average_TypeDef ADC_Average
void ADC_DC_ITGenCmd(ADC_DC_Module_TypeDef ADC_DC_Module, FunctionalState State)
Разрешает компаратору генерировать сигнал прерывания.
Структура инициализации секвенсоров.
void ADC_DC_DeInit(ADC_DC_Module_TypeDef ADC_DC_Module)
Устанавливает все регистры выбранного цифрового компаратора значениями по умолчанию.
void ADC_SEQ_Init(ADC_SEQ_Module_TypeDef ADC_SEQ_Module, ADC_SEQ_Init_TypeDef *ADC_SEQ_InitStruct)
Инициализирует выбранный секвенсор согласно параметрам структуры ADC_SEQ_InitStruct.
void ADC_DC_StructInit(ADC_DC_Init_TypeDef *ADC_DC_InitStruct)
Заполнение каждого члена структуры ADC_DC_InitStruct значениями по умолчанию.
uint32_t ADC_SEQ_GetITCount(ADC_SEQ_Module_TypeDef ADC_SEQ_Module)
Текущее значение счетчика измерений, который используется для генерации прерывания секвенсора...
ADC_SEQ_FIFOLevel_TypeDef
Количество результатов измерений записанных в буфер секвенсора, по достижению которого вызывается DMA...
void ADC_Cmd(ADC_Module_TypeDef ADC_Module, FunctionalState State)
Включение модуля АЦП.
ADC_Average_TypeDef
Количество измерений, используемых для получения результата преобразования.
Структура инициализации цифровых компараторов.
void ADC_DC_ITMaskCmd(ADC_DC_Module_TypeDef ADC_DC_Module, FunctionalState State)
Маскирование сигнала прерывания цифрового компаратора.
ADC_DC_Channel_TypeDef ADC_DC_Channel
ADC_DC_Mode_TypeDef ADC_DC_Mode
ADC_DC_Channel_TypeDef
Выбор канала, подключаемого к цифровому компаратору.
ADC_DC_Condition_TypeDef
Условие срабатывания компаратора.