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§
Required Methods§
sourcefn sample(&self, channel: &Self::Channel) -> Result<(), ErrorCode>
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.
sourcefn sample_continuous(
&self,
channel: &Self::Channel,
frequency: u32,
) -> Result<(), ErrorCode>
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.
sourcefn stop_sampling(&self) -> Result<(), ErrorCode>
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.
sourcefn get_resolution_bits(&self) -> usize
fn get_resolution_bits(&self) -> usize
Function to ask the ADC how many bits of resolution are in the samples it is returning.
sourcefn get_voltage_reference_mv(&self) -> Option<usize>
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.