pub trait _embedded_hal_adc_OneShot<ADC, Word, Pin>where
Pin: Channel<ADC>,{
type Error;
// Required method
fn read(&mut self, pin: &mut Pin) -> Result<Word, Error<Self::Error>>;
}Available on crate features
mcu-atmega and unproven only.Expand description
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 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())
}
}Required Associated Types§
Required Methods§
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".