InES Hardware Abstraction Layer
Data Structures | Enumerations | Functions
hal_adc.h File Reference

Interface of module hal_adc. More...

#include "reg_stm32f4xx.h"
#include "hal_common.h"

Go to the source code of this file.

Data Structures

struct  hal_adc_init_t
 Initialization structure for analog digital converter. More...
 
struct  hal_adc_ch_init_t
 Initialization structure for adc channel. More...
 

Enumerations

enum  hal_adc_channel_t {
  HAL_ADC_CH0 = 0u, HAL_ADC_CH1 = 1u, HAL_ADC_CH2 = 2u, HAL_ADC_CH3 = 3u,
  HAL_ADC_CH4 = 4u, HAL_ADC_CH5 = 5u, HAL_ADC_CH6 = 6u, HAL_ADC_CH7 = 7u,
  HAL_ADC_CH8 = 8u, HAL_ADC_CH9 = 9u, HAL_ADC_CH10 = 10u, HAL_ADC_CH11 = 11u,
  HAL_ADC_CH12 = 12u, HAL_ADC_CH13 = 13u, HAL_ADC_CH14 = 14u, HAL_ADC_CH15 = 15u,
  HAL_ADC_TEMP = 18u, HAL_ADC_VREF = 17u, HAL_ADC_VBAT = 18u
}
 Defines the channel of a ADC. More...
 
enum  hal_adc_resolution_t { HAL_ADC_RES_6B = 0x03, HAL_ADC_RES_8B = 0x02, HAL_ADC_RES_10B = 0x01, HAL_ADC_RES_12B = 0x00 }
 Resolution available for the ADC. More...
 
enum  hal_adc_polarity_t { HAL_ADC_POLARITY_NONE = 0x0, HAL_ADC_POLARITY_RISING = 0x1, HAL_ADC_POLARITY_FALLING = 0x2, HAL_ADC_POLARITY_BOOTH = 0x3 }
 Polarity of external trigger event. More...
 
enum  hal_adc_regular_trg_t {
  HAL_ADC_REGTRG_T1CC1 = 0u, HAL_ADC_REGTRG_T1CC2 = 1u, HAL_ADC_REGTRG_T1CC3 = 2u, HAL_ADC_REGTRG_T2CC2 = 3u,
  HAL_ADC_REGTRG_T2CC3 = 4u, HAL_ADC_REGTRG_T2CC4 = 5u, HAL_ADC_REGTRG_T2TRGO = 6u, HAL_ADC_REGTRG_T3CC1 = 7u,
  HAL_ADC_REGTRG_T3TRGO = 8u, HAL_ADC_REGTRG_T4CC4 = 9u, HAL_ADC_REGTRG_T5CC1 = 10u, HAL_ADC_REGTRG_T5CC2 = 11u,
  HAL_ADC_REGTRG_T5CC3 = 12u, HAL_ADC_REGTRG_T8CC1 = 13u, HAL_ADC_REGTRG_T8TRGO = 14u, HAL_ADC_REGTRG_EXTI11 = 15u
}
 
enum  hal_adc_injected_trg_t {
  HAL_ADC_INJTRG_T1CC4 = 0u, HAL_ADC_INJTRG_T1TRGO = 1u, HAL_ADC_INJTRG_T2CC1 = 2u, HAL_ADC_INJTRG_T2TRGO = 3u,
  HAL_ADC_INJTRG_T3CC2 = 4u, HAL_ADC_INJTRG_T3CC4 = 5u, HAL_ADC_INJTRG_T4CC1 = 6u, HAL_ADC_INJTRG_T4CC2 = 7u,
  HAL_ADC_INJTRG_T4CC3 = 8u, HAL_ADC_INJTRG_T4TRGO = 9u, HAL_ADC_INJTRG_T5CC4 = 10u, HAL_ADC_INJTRG_T5TRGO = 11u,
  HAL_ADC_INJTRG_T8CC2 = 12u, HAL_ADC_INJTRG_T8CC3 = 13u, HAL_ADC_INJTRG_T8CC4 = 14u, HAL_ADC_INJTRG_EXTI15 = 15u
}
 
enum  hal_adc_align_t { HAL_ADC_ALIGN_RIGHT = 0x0, HAL_ADC_ALIGN_LEFT = 0x1 }
 Alignment of converted data in data register. More...
 
enum  hal_adc_sample_time_t {
  HAL_ADC_SAMPLING_3C = 0u, HAL_ADC_SAMPLING_15C = 1u, HAL_ADC_SAMPLING_28C = 2u, HAL_ADC_SAMPLING_56C = 3u,
  HAL_ADC_SAMPLING_84C = 4u, HAL_ADC_SAMPLING_112C = 5u, HAL_ADC_SAMPLING_144C = 6u, HAL_ADC_SAMPLING_480C = 7u
}
 Sampling time of channel. More...
 

Functions

void hal_adc_reset (reg_adc_t *adc) __attribute__((deprecated("Please use ADCx_RESET().")))
 Resets adc to default values. More...
 
void hal_adc_init_base (reg_adc_t *adc, hal_adc_init_t init)
 Initializes the specified analog digital converter. More...
 
void hal_adc_init_channel (reg_adc_t *adc, hal_adc_channel_t channel, hal_adc_ch_init_t init)
 Initializes the specified adc channel. More...
 
void hal_adc_start (reg_adc_t *adc)
 Start specified ADC. More...
 
void hal_adc_stop (reg_adc_t *adc)
 Stops specified ADC. More...
 
void hal_adc_set_dma (reg_adc_t *adc, hal_bool_t status)
 Enables DMA on specified ADC. More...
 

Detailed Description

Interface of module hal_adc.

The hardware abstraction layer for the analog to digital converter.

$Id$

Enumeration Type Documentation

◆ hal_adc_align_t

Alignment of converted data in data register.

Enumerator
HAL_ADC_ALIGN_RIGHT 

Right alignment.

HAL_ADC_ALIGN_LEFT 

Left alignment.

◆ hal_adc_channel_t

Defines the channel of a ADC.

Enumerator
HAL_ADC_CH0 

Channel 0.

HAL_ADC_CH1 

Channel 1.

HAL_ADC_CH2 

Channel 2.

HAL_ADC_CH3 

Channel 3.

HAL_ADC_CH4 

Channel 4.

HAL_ADC_CH5 

Channel 5.

HAL_ADC_CH6 

Channel 6.

HAL_ADC_CH7 

Channel 7.

HAL_ADC_CH8 

Channel 8.

HAL_ADC_CH9 

Channel 9.

HAL_ADC_CH10 

Channel 10.

HAL_ADC_CH11 

Channel 11.

HAL_ADC_CH12 

Channel 12.

HAL_ADC_CH13 

Channel 13.

HAL_ADC_CH14 

Channel 14.

HAL_ADC_CH15 

Channel 15.

HAL_ADC_TEMP 

Temperature sensor (only ADC1).

HAL_ADC_VREF 

Internal ref. voltage (only ADC1).

HAL_ADC_VBAT 

Battery voltage (only ADC1)

◆ hal_adc_injected_trg_t

Enumerator
HAL_ADC_INJTRG_T1CC4 

Timer 1, capture compare channel 4.

HAL_ADC_INJTRG_T1TRGO 

Timer 1, trigger output.

HAL_ADC_INJTRG_T2CC1 

Timer 2, capture compare channel 1.

HAL_ADC_INJTRG_T2TRGO 

Timer 2, trigger output.

HAL_ADC_INJTRG_T3CC2 

Timer 3, capture compare channel 2.

HAL_ADC_INJTRG_T3CC4 

Timer 3, capture compare channel 4.

HAL_ADC_INJTRG_T4CC1 

Timer 4, capture compare channel 1.

HAL_ADC_INJTRG_T4CC2 

Timer 4, capture compare channel 2.

HAL_ADC_INJTRG_T4CC3 

Timer 4, capture compare channel 3.

HAL_ADC_INJTRG_T4TRGO 

Timer 4, trigger output.

HAL_ADC_INJTRG_T5CC4 

Timer 5, capture compare channel 4.

HAL_ADC_INJTRG_T5TRGO 

Timer 5, trigger output.

HAL_ADC_INJTRG_T8CC2 

Timer 8, capture compare channel 2.

HAL_ADC_INJTRG_T8CC3 

Timer 8, capture compare channel 3.

HAL_ADC_INJTRG_T8CC4 

Timer 8, capture compare channel 4.

HAL_ADC_INJTRG_EXTI15 

External interrupt line 15.

◆ hal_adc_polarity_t

Polarity of external trigger event.

Enumerator
HAL_ADC_POLARITY_NONE 

Don't trigger.

HAL_ADC_POLARITY_RISING 

Trigger on rising edge.

HAL_ADC_POLARITY_FALLING 

Trigger on falling edge.

HAL_ADC_POLARITY_BOOTH 

Trigger on both edges.

◆ hal_adc_regular_trg_t

Enumerator
HAL_ADC_REGTRG_T1CC1 

Timer 1, capture compare channel 1.

HAL_ADC_REGTRG_T1CC2 

Timer 1, capture compare channel 2.

HAL_ADC_REGTRG_T1CC3 

Timer 1, capture compare channel 3.

HAL_ADC_REGTRG_T2CC2 

Timer 2, capture compare channel 2.

HAL_ADC_REGTRG_T2CC3 

Timer 2, capture compare channel 3.

HAL_ADC_REGTRG_T2CC4 

Timer 2, capture compare channel 4.

HAL_ADC_REGTRG_T2TRGO 

Timer 2, trigger output.

HAL_ADC_REGTRG_T3CC1 

Timer 3, capture compare channel 1.

HAL_ADC_REGTRG_T3TRGO 

Timer 3, trigger output.

HAL_ADC_REGTRG_T4CC4 

Timer 4, capture compare channel 4.

HAL_ADC_REGTRG_T5CC1 

Timer 5, capture compare channel 1.

HAL_ADC_REGTRG_T5CC2 

Timer 5, capture compare channel 2.

HAL_ADC_REGTRG_T5CC3 

Timer 5, capture compare channel 3.

HAL_ADC_REGTRG_T8CC1 

Timer 8, capture compare channel 1.

HAL_ADC_REGTRG_T8TRGO 

Timer 8, trigger output.

HAL_ADC_REGTRG_EXTI11 

External interrupt line 11.

◆ hal_adc_resolution_t

Resolution available for the ADC.

Enumerator
HAL_ADC_RES_6B 

6 bit, takes 9 ADC cycles.

HAL_ADC_RES_8B 

8 bit, takes 11 ADC cycles.

HAL_ADC_RES_10B 

10 bit, takes 13 ADC cycles.

HAL_ADC_RES_12B 

12 bit, takes 15 ADC cycles.

◆ hal_adc_sample_time_t

Sampling time of channel.

Enumerator
HAL_ADC_SAMPLING_3C 

3 cyles.

HAL_ADC_SAMPLING_15C 

15 cyles.

HAL_ADC_SAMPLING_28C 

28 cyles.

HAL_ADC_SAMPLING_56C 

56 cyles.

HAL_ADC_SAMPLING_84C 

84 cyles.

HAL_ADC_SAMPLING_112C 

112 cyles.

HAL_ADC_SAMPLING_144C 

144 cyles.

HAL_ADC_SAMPLING_480C 

480 cyles.

Function Documentation

◆ hal_adc_init_base()

void hal_adc_init_base ( reg_adc_t adc,
hal_adc_init_t  init 
)

Initializes the specified analog digital converter.

Parameters
adc: Defines adc to initialize.
init: Structure with adc configuration.

◆ hal_adc_init_channel()

void hal_adc_init_channel ( reg_adc_t adc,
hal_adc_channel_t  channel,
hal_adc_ch_init_t  init 
)

Initializes the specified adc channel.

Parameters
adc: Defines adc.
channel: Defines channel.
init: Structure with channel configuration.

◆ hal_adc_reset()

void hal_adc_reset ( reg_adc_t adc)

Resets adc to default values.

Parameters
adc: Defines adc to reset.

◆ hal_adc_set_dma()

void hal_adc_set_dma ( reg_adc_t adc,
hal_bool_t  status 
)

Enables DMA on specified ADC.

Parameters
adc: Defines adc to interact with.
status: ENABLE/DISABLE DMA on specified ADC.

◆ hal_adc_start()

void hal_adc_start ( reg_adc_t adc)

Start specified ADC.

Parameters
adc: Defines ADC to start.

◆ hal_adc_stop()

void hal_adc_stop ( reg_adc_t adc)

Stops specified ADC.

Parameters
adc: Defines ADC to stop.