Skip to content

File syn_adc.c

FileList > drivers > syn_adc.c

Go to the source code of this file

ADC abstraction implementation.

  • #include "../util/syn_assert.h"
  • #include "syn_adc.h"
  • #include <string.h>

Public Functions

Type Name
SYN_Status syn_adc_init (SYN_ADC * adc, const SYN_ADC_Config * cfg)
Initialize an ADC channel with oversampling and calibration.
int32_t syn_adc_read (SYN_ADC * adc)
Read the ADC (oversample + filter + calibrate).
int32_t syn_adc_read_mv (SYN_ADC * adc)
Read and convert to millivolts.
void syn_adc_set_calibration (SYN_ADC * adc, int16_t offset, uint16_t scale, uint8_t shift)
Update calibration at runtime.
void syn_adc_set_stats (SYN_ADC * adc, SYN_Signal * stats)
Attach a signal statistics window.

Public Static Functions

Type Name
int16_t apply_filter (SYN_ADC * adc, int16_t value)
Apply the configured filter to an ADC reading.

Public Functions Documentation

function syn_adc_init

Initialize an ADC channel with oversampling and calibration.

SYN_Status syn_adc_init (
    SYN_ADC * adc,
    const SYN_ADC_Config * cfg
) 

Parameters:

  • adc ADC instance.
  • cfg Configuration.

Returns:

SYN_OK on success.


function syn_adc_read

Read the ADC (oversample + filter + calibrate).

int32_t syn_adc_read (
    SYN_ADC * adc
) 

Parameters:

  • adc ADC instance.

Returns:

Calibrated value.


function syn_adc_read_mv

Read and convert to millivolts.

int32_t syn_adc_read_mv (
    SYN_ADC * adc
) 

Uses the port's reference voltage and resolution for conversion.

Parameters:

  • adc ADC instance.

Returns:

Value in millivolts.


function syn_adc_set_calibration

Update calibration at runtime.

void syn_adc_set_calibration (
    SYN_ADC * adc,
    int16_t offset,
    uint16_t scale,
    uint8_t shift
) 

Parameters:

  • adc ADC instance.
  • offset New zero-point offset.
  • scale New scale numerator.
  • shift New scale shift (denominator = 1 << shift).

function syn_adc_set_stats

Attach a signal statistics window.

void syn_adc_set_stats (
    SYN_ADC * adc,
    SYN_Signal * stats
) 

Each syn_adc_read() pushes the calibrated value into the signal window, giving you noise stats (min/max/mean/variance) for free.

Parameters:

  • adc ADC instance.
  • stats Initialized SYN_Signal, or NULL to detach.

Public Static Functions Documentation

function apply_filter

Apply the configured filter to an ADC reading.

static int16_t apply_filter (
    SYN_ADC * adc,
    int16_t value
) 

Parameters:

  • adc ADC instance.
  • value Raw ADC value.

Returns:

Filtered value.



The documentation for this class was generated from the following file src/syntropic/drivers/syn_adc.c