diff options
Diffstat (limited to 'examples/trait.rs')
-rw-r--r-- | examples/trait.rs | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/examples/trait.rs b/examples/trait.rs new file mode 100644 index 0000000..eda1f37 --- /dev/null +++ b/examples/trait.rs @@ -0,0 +1,24 @@ +// This example demonstrates the use of a type alias for the `Ads1x1x` struct +// to ease usage in signatures. + +use linux_embedded_hal::I2cdev; +use nb::block; + +use ads1x1x::{Ads1x1x, ChannelSelection, DynamicOneShot, SlaveAddr}; + +/// Read a single value from channel A. +/// Returns 0 on Error. +pub fn read<E, A: DynamicOneShot<Error = E>>(adc: &mut A) -> i16 { + block!(adc.read(ChannelSelection::SingleA0)).unwrap_or(0) +} + +fn main() { + let dev = I2cdev::new("/dev/i2c-1").unwrap(); + let address = SlaveAddr::default(); + let mut adc = Ads1x1x::new_ads1115(dev, address); + + let value = read(&mut adc); + println!("Measurement: {}", value); + // get I2C device back + let _dev = adc.destroy_ads1115(); +} |