nRF51 SDK - S110 SoftDevice
 All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages

Hardware abstraction layer for managing the analog-to-digital converter. More...

Data Structures

struct  nrf_adc_config_t
 Analog-to-digital converter configuration. More...
 

Macros

#define NRF_ADC_CONFIG_DEFAULT
 

Enumerations

enum  nrf_adc_config_resolution_t {
  NRF_ADC_CONFIG_RES_8BIT = ADC_CONFIG_RES_8bit,
  NRF_ADC_CONFIG_RES_9BIT = ADC_CONFIG_RES_9bit,
  NRF_ADC_CONFIG_RES_10BIT = ADC_CONFIG_RES_10bit
}
 Resolution of the analog-to-digital converter. More...
 
enum  nrf_adc_config_scaling_t {
  NRF_ADC_CONFIG_SCALING_INPUT_FULL_SCALE = ADC_CONFIG_INPSEL_AnalogInputNoPrescaling,
  NRF_ADC_CONFIG_SCALING_INPUT_TWO_THIRDS = ADC_CONFIG_INPSEL_AnalogInputTwoThirdsPrescaling,
  NRF_ADC_CONFIG_SCALING_INPUT_ONE_THIRD = ADC_CONFIG_INPSEL_AnalogInputOneThirdPrescaling,
  NRF_ADC_CONFIG_SCALING_SUPPLY_TWO_THIRDS = ADC_CONFIG_INPSEL_SupplyTwoThirdsPrescaling,
  NRF_ADC_CONFIG_SCALING_SUPPLY_ONE_THIRD = ADC_CONFIG_INPSEL_SupplyOneThirdPrescaling
}
 Scaling factor of the analog-to-digital conversion. More...
 
enum  nrf_adc_config_reference_t {
  NRF_ADC_CONFIG_REF_VBG = ADC_CONFIG_REFSEL_VBG,
  NRF_ADC_CONFIG_REF_SUPPLY_ONE_HALF = ADC_CONFIG_REFSEL_SupplyOneHalfPrescaling,
  NRF_ADC_CONFIG_REF_SUPPLY_ONE_THIRD = ADC_CONFIG_REFSEL_SupplyOneThirdPrescaling,
  NRF_ADC_CONFIG_REF_EXT_REF0,
  NRF_ADC_CONFIG_REF_EXT_REF1
}
 Reference selection of the analog-to-digital converter. More...
 
enum  nrf_adc_config_input_t {
  NRF_ADC_CONFIG_INPUT_DISABLED = ADC_CONFIG_PSEL_Disabled,
  NRF_ADC_CONFIG_INPUT_0 = ADC_CONFIG_PSEL_AnalogInput0,
  NRF_ADC_CONFIG_INPUT_1 = ADC_CONFIG_PSEL_AnalogInput1,
  NRF_ADC_CONFIG_INPUT_2 = ADC_CONFIG_PSEL_AnalogInput2,
  NRF_ADC_CONFIG_INPUT_3 = ADC_CONFIG_PSEL_AnalogInput3,
  NRF_ADC_CONFIG_INPUT_4 = ADC_CONFIG_PSEL_AnalogInput4,
  NRF_ADC_CONFIG_INPUT_5 = ADC_CONFIG_PSEL_AnalogInput5,
  NRF_ADC_CONFIG_INPUT_6 = ADC_CONFIG_PSEL_AnalogInput6,
  NRF_ADC_CONFIG_INPUT_7 = ADC_CONFIG_PSEL_AnalogInput7
}
 Input selection of the analog-to-digital converter. More...
 
enum  nrf_adc_task_t {
  NRF_ADC_TASK_START = offsetof(NRF_ADC_Type, TASKS_START),
  NRF_ADC_TASK_STOP = offsetof(NRF_ADC_Type, TASKS_STOP)
}
 Analog-to-digital converter tasks. More...
 
enum  nrf_adc_event_t { NRF_ADC_EVENT_END = offsetof(NRF_ADC_Type, EVENTS_END) }
 Analog-to-digital converter events. More...
 

Functions

void nrf_adc_configure (nrf_adc_config_t *config)
 Function for configuring ADC. More...
 
int32_t nrf_adc_convert_single (nrf_adc_config_input_t input)
 Blocking function for executing a single ADC conversion. More...
 
__STATIC_INLINE void nrf_adc_input_select (nrf_adc_config_input_t input)
 Function for selecting ADC input. More...
 
__STATIC_INLINE int32_t nrf_adc_result_get (void)
 Function for retrieving the ADC conversion result. More...
 
__STATIC_INLINE bool nrf_adc_is_busy (void)
 Function for checking whether the ADC is busy. More...
 
__STATIC_INLINE void nrf_adc_int_enable (uint32_t interrupts)
 Function for enabling interrupts from the ADC. More...
 
__STATIC_INLINE void nrf_adc_int_disable (uint32_t interrupts)
 Function for disabling interrupts from the ADC. More...
 
__STATIC_INLINE uint32_t nrf_adc_int_get (uint32_t mask)
 Function for getting the ADC's enabled interrupts. More...
 
__STATIC_INLINE void nrf_adc_start (void)
 Function for starting conversion. More...
 
__STATIC_INLINE void nrf_adc_stop (void)
 Function for stopping conversion. More...
 
__STATIC_INLINE bool nrf_adc_conversion_finished (void)
 Function for checking if the requested ADC conversion has ended. More...
 
__STATIC_INLINE void nrf_adc_conversion_event_clean (void)
 Function for cleaning conversion end event.
 
__STATIC_INLINE uint32_t * nrf_adc_task_address_get (nrf_adc_task_t adc_task)
 Function for getting the address of an ADC task register. More...
 
__STATIC_INLINE uint32_t * nrf_adc_event_address_get (nrf_adc_event_t adc_event)
 Function for getting the address of a specific ADC event register. More...
 

Detailed Description

Hardware abstraction layer for managing the analog-to-digital converter.

Macro Definition Documentation

#define NRF_ADC_CONFIG_DEFAULT
Value:
NRF_ADC_CONFIG_SCALING_INPUT_ONE_THIRD, \
NRF_ADC_CONFIG_REF_VBG }

Default ADC configuration.

Enumeration Type Documentation

Input selection of the analog-to-digital converter.

Enumerator
NRF_ADC_CONFIG_INPUT_DISABLED 

No input selected.

NRF_ADC_CONFIG_INPUT_0 

Input 0.

NRF_ADC_CONFIG_INPUT_1 

Input 1.

NRF_ADC_CONFIG_INPUT_2 

Input 2.

NRF_ADC_CONFIG_INPUT_3 

Input 3.

NRF_ADC_CONFIG_INPUT_4 

Input 4.

NRF_ADC_CONFIG_INPUT_5 

Input 5.

NRF_ADC_CONFIG_INPUT_6 

Input 6.

NRF_ADC_CONFIG_INPUT_7 

Input 7.

Reference selection of the analog-to-digital converter.

Enumerator
NRF_ADC_CONFIG_REF_VBG 

1.2 V reference.

NRF_ADC_CONFIG_REF_SUPPLY_ONE_HALF 

1/2 of power supply.

NRF_ADC_CONFIG_REF_SUPPLY_ONE_THIRD 

1/3 of power supply.

NRF_ADC_CONFIG_REF_EXT_REF0 

External reference 0.

NRF_ADC_CONFIG_REF_EXT_REF1 

External reference 0.

Resolution of the analog-to-digital converter.

Enumerator
NRF_ADC_CONFIG_RES_8BIT 

8 bit resolution.

NRF_ADC_CONFIG_RES_9BIT 

9 bit resolution.

NRF_ADC_CONFIG_RES_10BIT 

10 bit resolution.

Scaling factor of the analog-to-digital conversion.

Enumerator
NRF_ADC_CONFIG_SCALING_INPUT_FULL_SCALE 

Full scale input.

NRF_ADC_CONFIG_SCALING_INPUT_TWO_THIRDS 

2/3 scale input.

NRF_ADC_CONFIG_SCALING_INPUT_ONE_THIRD 

1/3 scale input.

NRF_ADC_CONFIG_SCALING_SUPPLY_TWO_THIRDS 

2/3 of supply.

NRF_ADC_CONFIG_SCALING_SUPPLY_ONE_THIRD 

1/3 of supply.

Analog-to-digital converter events.

Enumerator
NRF_ADC_EVENT_END 

End of conversion event.

Analog-to-digital converter tasks.

Enumerator
NRF_ADC_TASK_START 

ADC start sampling task.

NRF_ADC_TASK_STOP 

ADC stop sampling task.

Function Documentation

void nrf_adc_configure ( nrf_adc_config_t config)

Function for configuring ADC.

This function powers on the analog-to-digital converter and configures it. After the configuration, the ADC is in DISABLE state and must be enabled before using it.

Parameters
[in]configConfiguration parameters.
__STATIC_INLINE bool nrf_adc_conversion_finished ( void  )

Function for checking if the requested ADC conversion has ended.

Return values
trueIf the task has finished.
falseIf the task is still running.
int32_t nrf_adc_convert_single ( nrf_adc_config_input_t  input)

Blocking function for executing a single ADC conversion.

This function selects the desired input, starts a single conversion, waits for it to finish, and returns the result. After the input is selected, the analog-to-digital converter is left in STOP state. The function does not check if the ADC is initialized and powered.

Parameters
[in]inputInput to be selected.
Returns
Conversion result.
__STATIC_INLINE uint32_t* nrf_adc_event_address_get ( nrf_adc_event_t  adc_event)

Function for getting the address of a specific ADC event register.

Parameters
[in]adc_eventADC event.
Returns
Address of the specified ADC event.
__STATIC_INLINE void nrf_adc_input_select ( nrf_adc_config_input_t  input)

Function for selecting ADC input.

This function selects the active input of ADC. Ensure that the ADC is powered on and in IDLE state before calling this function.

Parameters
[in]inputInput to be selected.
__STATIC_INLINE void nrf_adc_int_disable ( uint32_t  interrupts)

Function for disabling interrupts from the ADC.

Parameters
[in]interruptsMask of interrupts to be disabled.
See Also
nrf_adc_int_enable()
nrf_adc_int_get()
__STATIC_INLINE void nrf_adc_int_enable ( uint32_t  interrupts)

Function for enabling interrupts from the ADC.

Parameters
[in]interruptsMask of interrupts to be enabled.
See Also
nrf_adc_int_disable()
nrf_adc_int_get()
__STATIC_INLINE uint32_t nrf_adc_int_get ( uint32_t  mask)

Function for getting the ADC's enabled interrupts.

Parameters
[in]maskMask of interrupts to check.
Returns
State of the interrupts selected by the mask.
See Also
nrf_adc_int_enable()
nrf_adc_int_disable()
__STATIC_INLINE bool nrf_adc_is_busy ( void  )

Function for checking whether the ADC is busy.

This function checks whether the analog-to-digital converter is busy with a conversion.

Return values
trueIf the ADC is busy.
falseIf the ADC is not busy.
__STATIC_INLINE int32_t nrf_adc_result_get ( void  )

Function for retrieving the ADC conversion result.

This function retrieves and returns the last analog-to-digital conversion result.

Returns
Last conversion result.
__STATIC_INLINE void nrf_adc_start ( void  )

Function for starting conversion.

See Also
nrf_adc_stop()
__STATIC_INLINE void nrf_adc_stop ( void  )

Function for stopping conversion.

If the analog-to-digital converter is in inactive state, power consumption is reduced.

See Also
nrf_adc_start()
__STATIC_INLINE uint32_t* nrf_adc_task_address_get ( nrf_adc_task_t  adc_task)

Function for getting the address of an ADC task register.

Parameters
[in]adc_taskADC task.
Returns
Address of the specified ADC task.