Trait kernel::hil::adc::AdcChannel

source ·
pub trait AdcChannel<'a> {
    // Required methods
    fn sample(&self) -> Result<(), ErrorCode>;
    fn sample_continuous(&self) -> 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);

Required Methods§


fn sample(&self) -> 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.


fn sample_continuous(&self) -> 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.


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.


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: &'a dyn Client)