[][src]Trait kernel::hil::adc::Adc

pub trait Adc {
    type Channel: PartialEq;
    fn sample(&self, channel: &Self::Channel) -> ReturnCode;
fn sample_continuous(
        channel: &Self::Channel,
        frequency: u32
    ) -> ReturnCode;
fn stop_sampling(&self) -> ReturnCode;
fn get_resolution_bits(&self) -> usize;
fn get_voltage_reference_mv(&self) -> Option<usize>;
fn set_client(&self, client: &'static dyn Client); }

Simple interface for reading an ADC sample on any channel.

Associated Types

type Channel: PartialEq

The chip-dependent type of an ADC channel.

Loading content...

Required methods

fn sample(&self, channel: &Self::Channel) -> ReturnCode

Request a single ADC sample on a particular channel. Used for individual samples that have no timing requirements. All ADC samples will be the raw ADC value left-justified in the u16.

fn sample_continuous(
    channel: &Self::Channel,
    frequency: u32
) -> ReturnCode

Request repeated ADC samples on a particular channel. Callbacks will occur at the given frequency with low jitter and can be set to any frequency supported by the chip implementation. However callbacks may be limited based on how quickly the system can service individual samples, leading to missed samples at high frequencies. All ADC samples will be the raw ADC value left-justified in the u16.

fn stop_sampling(&self) -> ReturnCode

Stop a sampling operation. Can be used to stop any simple or high-speed sampling operation. No further callbacks will occur.

fn get_resolution_bits(&self) -> usize

Function to ask the ADC how many bits of resolution are in the samples it is returning.

fn get_voltage_reference_mv(&self) -> Option<usize>

Function to ask the ADC what reference voltage it used when taking the samples. This allows the user of this interface to calculate an actual voltage from the ADC reading.

The returned reference voltage is in millivolts, or None if unknown.

fn set_client(&self, client: &'static dyn Client)

Loading content...


Loading content...