[][src]Trait bl602_hal::prelude::_embedded_hal_adc_OneShot

pub trait _embedded_hal_adc_OneShot<ADC, Word, Pin> where
    Pin: Channel<ADC>, 
{ type Error; fn try_read(&mut self, pin: &mut Pin) -> Result<Word, Error<Self::Error>>; }

ADCs that sample on single channels per request, and do so at the time of the request.

This trait is the interface to an ADC that is configured to read a specific channel at the time of the request (in contrast to continuous asynchronous sampling).

use embedded_hal::adc::{Channel, OneShot};

struct MyAdc; // 10-bit ADC, with 5 channels

impl<WORD, PIN> OneShot<MyAdc, WORD, PIN> for MyAdc
where
   WORD: From<u16>,
   PIN: Channel<MyAdc, ID=u8>,
{
   type Error = ();

   fn try_read(&mut self, pin: &mut PIN) -> nb::Result<WORD, Self::Error> {
       let chan = 1 << pin.channel();
       self.power_up();
       let result = self.do_conversion(chan);
       self.power_down();
       Ok(result.into())
   }
}

Associated Types

type Error

Error type returned by ADC methods

Loading content...

Required methods

fn try_read(&mut self, pin: &mut Pin) -> Result<Word, Error<Self::Error>>

Request that the ADC begin a conversion on the specified pin

This method takes a Pin reference, as it is expected that the ADC will be able to sample whatever channel underlies the pin.

Loading content...

Implementors

Loading content...