Paparazzi UAS  v5.8.2_stable-0-g6260b7c
Paparazzi is a free software Unmanned Aircraft System.
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
adc_arch.c File Reference

Driver for the analog to digital converters in Linux based systems. More...

#include "mcu_periph/adc.h"
#include <BOARD_CONFIG>
#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <poll.h>
+ Include dependency graph for adc_arch.c:

Go to the source code of this file.

Functions

static void adc_dev_init (struct adc_t *adc)
 Initialize an ADC device. More...
 
static void write_sysfs_int (uint8_t dev_id, char *filename, int val)
 Write an int to a sysfs file. More...
 
void adc_init (void)
 Initialize the ADC. More...
 
void adc_buf_channel (uint8_t adc_channel, struct adc_buf *s, uint8_t av_nb_sample)
 Registers a buffer to be used to store the specified converted channel Usage: More...
 
void adc_enable (struct adc_t *adc, uint8_t value)
 Start or stop the ADC readings. More...
 
int adc_read (struct adc_t *adc, uint16_t *buf, uint16_t size)
 Read the ADC buffer from the driver. More...
 

Detailed Description

Driver for the analog to digital converters in Linux based systems.

Definition in file adc_arch.c.

Function Documentation

void adc_buf_channel ( uint8_t  adc_channel,
struct adc_buf s,
uint8_t  av_nb_sample 
)

Registers a buffer to be used to store the specified converted channel Usage:

Todo:
: fx a more general ADC

Definition at line 91 of file adc_arch.c.

Referenced by adc_generic_init(), airspeed_adc_init(), aoa_adc_init(), baro_init(), electrical_init(), enose_init(), humid_hih_init(), imu_impl_init(), infrared_adc_init(), light_solar_init(), light_temt_init(), mf_ptu_init(), sonar_adc_init(), temp_adc_init(), and temp_tcouple_adc_init().

+ Here is the caller graph for this function:

static void adc_dev_init ( struct adc_t adc)
inlinestatic

Initialize an ADC device.

Parameters
[in]*adcThe ADC device to initialize

Definition at line 148 of file adc_arch.c.

References adc_t::buf_length, adc_t::channels, adc_t::channels_cnt, adc_t::dev_id, and write_sysfs_int().

Referenced by adc_init().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void adc_enable ( struct adc_t adc,
uint8_t  value 
)

Start or stop the ADC readings.

Parameters
[in]*adcThe ADC to start the readings for
[in]value1 to enable and 0 to disable

Definition at line 101 of file adc_arch.c.

References adc_t::dev_id, and write_sysfs_int().

Referenced by sonar_bebop_read().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void adc_init ( void  )

Initialize the ADC.

Starts conversions.

Definition at line 78 of file adc_arch.c.

Referenced by mcu_init().

+ Here is the caller graph for this function:

int adc_read ( struct adc_t adc,
uint16_t buf,
uint16_t  size 
)

Read the ADC buffer from the driver.

Parameters
[in]*adcThe adc you want to read from
[out]*bufOutput values
[in]sizeThe amount of bytes you want to read

Definition at line 113 of file adc_arch.c.

References adc_t::dev_id, and fd.

Referenced by sonar_bebop_read().

+ Here is the caller graph for this function:

static void write_sysfs_int ( uint8_t  dev_id,
char *  filename,
int  val 
)
static

Write an int to a sysfs file.

Parameters
[in]dev_idThe device id
[in]*filenameThe file to write to
[in]valThe value to write

Definition at line 169 of file adc_arch.c.

References fd.

Referenced by adc_dev_init(), and adc_enable().

+ Here is the caller graph for this function: