Hardware Abstraction Layer for FreeRTOS
Collaboration diagram for ADC Subsystem:

Data Structures

struct  adc_generic
 

Functions

struct adc * adc_init (uint32_t index, uint8_t bits, uint32_t hz)
 
int32_t adc_deinit (struct adc *adc)
 
int32_t adc_get (struct adc *adc, TickType_t waittime)
 
int32_t adc_getISR (struct adc *adc)
 
int32_t adc_setCallback (struct adc *adc, bool(*callback)(struct adc *adc, uint32_t channel, int32_t value, void *data), void *data)
 
int32_t adc_start (struct adc *adc)
 
int32_t adc_stop (struct adc *adc)
 

Detailed Description

#include <adc.h>

This is the ADC Subsystem for controlling ADC of a SOC.

Function Documentation

◆ adc_deinit()

int32_t adc_deinit ( struct adc *  adc)

Deinit ADC

Parameters
adcADC instance
Returns
-1 on error 0 on ok

◆ adc_get()

int32_t adc_get ( struct adc *  adc,
TickType_t  waittime 
)

Get ADC Value

Parameters
adcADC instance
waittimemax waittime in mutex or isr lock see xSemaphoreTake()
Returns
-1 on error >= 0 Value

◆ adc_getISR()

int32_t adc_getISR ( struct adc *  adc)

Get ADC Value in Interrupt Service Routine

Parameters
adcADC instance
Returns
-1 on error >= 0 Value

◆ adc_init()

struct adc* adc_init ( uint32_t  index,
uint8_t  bits,
uint32_t  hz 
)

init ADC instance

Parameters
indexIndex of PWM
bitsbit wide of ADC common: 4, 8, 12. 0 on only get instance
hzSample frequency
Returns
ADC Instance NULL on Error if only get instance on bits == 0

◆ adc_setCallback()

int32_t adc_setCallback ( struct adc *  adc,
bool(*)(struct adc *adc, uint32_t channel, int32_t value, void *data)  callback,
void *  data 
)

Set ADC Interrupt Callback

Parameters
adcADC instance
callbackCallback
dataData parsed to Callback
Returns
-1 on error 0 on ok

◆ adc_start()

int32_t adc_start ( struct adc *  adc)

Start ADC Sampling only needed if Callback is set

Parameters
adcADC instance
Returns
-1 on error 0 on ok

◆ adc_stop()

int32_t adc_stop ( struct adc *  adc)

Stop ADC Sampling only needed if Callback is set

Parameters
adcADC instance
Returns
-1 on error 0 on ok
adc.h