Trait kernel::hil::adc::Adc

source ·
pub trait Adc<'a> {
    type Channel: PartialEq;

    // Required methods
    fn sample(&self, channel: &Self::Channel) -> Result<(), ErrorCode>;
    fn sample_continuous(
        &self,
        channel: &Self::Channel,
        frequency: u32
    ) -> Result<(), ErrorCode>;
    fn stop_sampling(&self) -> Result<(), ErrorCode>;
    fn get_resolution_bits(&self) -> usize;
    fn get_voltage_reference_mv(&self) -> Option<usize>;
    fn set_client(&self, client: &'a dyn Client);
}
Expand description

Simple interface for reading an ADC sample on any channel.

Required Associated Types§

source

type Channel: PartialEq

The chip-dependent type of an ADC channel.

Required Methods§

source

fn sample(&self, channel: &Self::Channel) -> Result<(), ErrorCode>

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.

source

fn sample_continuous( &self, channel: &Self::Channel, frequency: u32 ) -> Result<(), ErrorCode>

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.

source

fn stop_sampling(&self) -> Result<(), ErrorCode>

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

source

fn get_resolution_bits(&self) -> usize

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

source

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.

source

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

Object Safety§

This trait is not object safe.

Implementors§