VSF Documented
adc_common.c File Reference

Macros

#define VSF_ADC_CFG_FUNCTION_RENAME   DISABLED
 

Functions

vsf_err_t vsf_adc_init (vsf_adc_t *adc_ptr, vsf_adc_cfg_t *cfg_ptr)
 Initialize an ADC instance.
 
void vsf_adc_fini (vsf_adc_t *adc_ptr)
 Finalize an ADC instance.
 
vsf_err_t vsf_adc_get_configuration (vsf_adc_t *adc_ptr, vsf_adc_cfg_t *cfg_ptr)
 Get current configuration of an ADC instance.
 
fsm_rt_t vsf_adc_enable (vsf_adc_t *adc_ptr)
 Enable an ADC instance.
 
fsm_rt_t vsf_adc_disable (vsf_adc_t *adc_ptr)
 Disable an ADC instance.
 
void vsf_adc_irq_enable (vsf_adc_t *adc_ptr, vsf_adc_irq_mask_t irq_mask)
 Enable interrupt masks of ADC instance.
 
void vsf_adc_irq_disable (vsf_adc_t *adc_ptr, vsf_adc_irq_mask_t irq_mask)
 Disable interrupt masks of ADC instance.
 
vsf_adc_irq_mask_t vsf_adc_irq_clear (vsf_adc_t *adc_ptr, vsf_adc_irq_mask_t irq_mask)
 Clear interrupt flags of ADC instance and return previous state.
 
vsf_adc_status_t vsf_adc_status (vsf_adc_t *adc_ptr)
 Get the status of ADC instance.
 
vsf_adc_capability_t vsf_adc_capability (vsf_adc_t *adc_ptr)
 Get the capability of ADC instance.
 
vsf_err_t vsf_adc_channel_request_once (vsf_adc_t *adc_ptr, vsf_adc_channel_cfg_t *channel_cfg, void *buffer_ptr)
 ADC request sampling once.
 
vsf_err_t vsf_adc_channel_config (vsf_adc_t *adc_ptr, vsf_adc_channel_cfg_t *channel_cfgs_ptr, uint32_t channel_cfgs_cnt)
 ADC channel configuration.
 
vsf_err_t vsf_adc_channel_request (vsf_adc_t *adc_ptr, void *buffer_ptr, uint_fast32_t count)
 ADC channel request.
 
vsf_err_t vsf_adc_ctrl (vsf_adc_t *adc_ptr, vsf_adc_ctrl_t ctrl, void *param)
 Execute a control command on an ADC instance.
 

Macro Definition Documentation

◆ VSF_ADC_CFG_FUNCTION_RENAME

#define VSF_ADC_CFG_FUNCTION_RENAME   DISABLED

Function Documentation

◆ vsf_adc_init()

vsf_err_t vsf_adc_init ( vsf_adc_t * adc_ptr,
vsf_adc_cfg_t * cfg_ptr )

Initialize an ADC instance.

Parameters
[in]adc_ptra pointer to structure vsf_adc_t
[in]cfg_ptra pointer to structure vsf_adc_cfg_t
Returns
vsf_err_t: VSF_ERR_NONE if initialization successful, otherwise returns error code
Note
It is not necessary to call vsf_adc_fini() to deinitialize.
vsf_adc_init() should be called before any other ADC API except vsf_adc_capability().

◆ vsf_adc_fini()

void vsf_adc_fini ( vsf_adc_t * adc_ptr)

Finalize an ADC instance.

Parameters
[in]adc_ptra pointer to structure vsf_adc_t
Returns
none

◆ vsf_adc_get_configuration()

vsf_err_t vsf_adc_get_configuration ( vsf_adc_t * adc_ptr,
vsf_adc_cfg_t * cfg_ptr )

Get current configuration of an ADC instance.

Parameters
[in]adc_ptrPointer to ADC instance
[out]cfg_ptrPointer to ADC configuration structure to store current settings
Returns
vsf_err_t VSF_ERR_NONE if successful, otherwise an error code
Note
This function retrieves the current configuration of the ADC instance

◆ vsf_adc_enable()

fsm_rt_t vsf_adc_enable ( vsf_adc_t * adc_ptr)

Enable an ADC instance.

Parameters
[in]adc_ptra pointer to structure vsf_adc_t
Returns
fsm_rt_t: FSM_RT_CPL if ADC was enabled, FSM_RT_ON_GOING if ADC is still enabling

◆ vsf_adc_disable()

fsm_rt_t vsf_adc_disable ( vsf_adc_t * adc_ptr)

Disable an ADC instance.

Parameters
[in]adc_ptra pointer to structure vsf_adc_t
Returns
fsm_rt_t: FSM_RT_CPL if ADC was disabled, FSM_RT_ON_GOING if ADC is still disabling

◆ vsf_adc_irq_enable()

void vsf_adc_irq_enable ( vsf_adc_t * adc_ptr,
vsf_adc_irq_mask_t irq_mask )

Enable interrupt masks of ADC instance.

Parameters
[in]adc_ptra pointer to structure vsf_adc_t
[in]irq_maskone or more values of enum vsf_adc_irq_mask_t
Returns
none
Note
All pending interrupts should be cleared before interrupts are enabled.

◆ vsf_adc_irq_disable()

void vsf_adc_irq_disable ( vsf_adc_t * adc_ptr,
vsf_adc_irq_mask_t irq_mask )

Disable interrupt masks of ADC instance.

Parameters
[in]adc_ptra pointer to structure vsf_adc_t
[in]irq_maskone or more values of enum vsf_adc_irq_mask_t
Returns
none

◆ vsf_adc_irq_clear()

vsf_adc_irq_mask_t vsf_adc_irq_clear ( vsf_adc_t * adc_ptr,
vsf_adc_irq_mask_t irq_mask )

Clear interrupt flags of ADC instance and return previous state.

Parameters
[in]adc_ptra pointer to structure vsf_adc_t
[in]irq_maskone or more values of enum vsf_adc_irq_mask_t to clear
Returns
vsf_adc_irq_mask_t: the interrupt mask state before clearing (0 if no flags were set)
Note
This function attempts to clear the specified interrupt flags if they are set, and returns the state of those flags before clearing. This is useful for polling operations and determining if interrupts occurred. Note that if interrupts are enabled and an interrupt handler is active, the interrupt handler may clear the interrupt flags automatically. In such cases, this function will return 0 even if interrupts occurred.

◆ vsf_adc_status()

vsf_adc_status_t vsf_adc_status ( vsf_adc_t * adc_ptr)

Get the status of ADC instance.

Parameters
[in]adc_ptra pointer to structure vsf_adc_t
Returns
vsf_adc_status_t: All status of current ADC

◆ vsf_adc_capability()

vsf_adc_capability_t vsf_adc_capability ( vsf_adc_t * adc_ptr)

Get the capability of ADC instance.

Parameters
[in]adc_ptra pointer to structure vsf_adc_t
Returns
vsf_adc_capability_t: All capabilities of current ADC vsf_adc_capability_t

◆ vsf_adc_channel_request_once()

vsf_err_t vsf_adc_channel_request_once ( vsf_adc_t * adc_ptr,
vsf_adc_channel_cfg_t * channel_cfg_ptr,
void * buffer_ptr )

ADC request sampling once.

Parameters
[in]adc_ptra pointer to structure vsf_adc_t
[in]channel_cfg_ptra pointer to convert channel configuration
[out]buffer_ptrpointer to the buffer that receives the conversion result
Returns
vsf_err_t: VSF_ERR_NONE if the request was successfully submitted, otherwise returns error code
Note
This is an asynchronous API. It only submits the sampling request and returns immediately; a VSF_ERR_NONE return means the request was accepted, NOT that the conversion has completed.
Completion is signaled through the ISR callback registered in cfg.isr (see vsf_adc_init) via the VSF_ADC_IRQ_MASK_CPL interrupt. The conversion result is written into buffer_ptr asynchronously by the driver.
buffer_ptr must remain valid until the completion callback is invoked, and its content is undefined before completion.

◆ vsf_adc_channel_config()

vsf_err_t vsf_adc_channel_config ( vsf_adc_t * adc_ptr,
vsf_adc_channel_cfg_t * channel_cfgs_ptr,
uint32_t count )

ADC channel configuration.

Parameters
[in]adc_ptra pointer to structure vsf_adc_t
[in]channel_cfgs_ptrconvert channel configuration array
[in]countthe length of convert channel configuration array
Returns
vsf_err_t: VSF_ERR_NONE if the configuration was successful, otherwise returns error code

◆ vsf_adc_channel_request()

vsf_err_t vsf_adc_channel_request ( vsf_adc_t * adc_ptr,
void * buffer_ptr,
uint_fast32_t count )

ADC channel request.

Parameters
[in]adc_ptra pointer to structure vsf_adc_t
[out]buffer_ptrarray that receives the converted channel data
[in]countthe length of the convert channel data array
Returns
vsf_err_t: VSF_ERR_NONE if the request was successfully submitted, otherwise returns error code
Note
This is an asynchronous API. It only submits the request and returns immediately; a VSF_ERR_NONE return means the request was accepted, NOT that the conversions have completed.
Completion is signaled through the ISR callback registered in cfg.isr (see vsf_adc_init) via the VSF_ADC_IRQ_MASK_CPL interrupt. The converted data is written into buffer_ptr asynchronously by the driver.
buffer_ptr must remain valid until the completion callback is invoked, and its content is undefined before completion.

◆ vsf_adc_ctrl()

vsf_err_t vsf_adc_ctrl ( vsf_adc_t * adc_ptr,
vsf_adc_ctrl_t ctrl,
void * param )

Execute a control command on an ADC instance.

Parameters
[in,out]adc_ptrpointer to ADC instance structure vsf_adc_t
[in]ctrlControl command from vsf_adc_ctrl_t enumeration
[in]paramCommand-specific parameter (can be NULL depending on command)
Returns
vsf_err_t: VSF_ERR_NONE if command executed successfully, VSF_ERR_NOT_SUPPORT if command is not supported, other error codes defined by vsf_err_t for specific failures
Note
Available commands and their parameters are hardware-dependent
Some commands may not be supported on all hardware platforms
Generated from commit: vsfteam/vsf@5de27dd