mcp3425 1.1.0

Platform agnostic Rust driver for the Microchip MCP3425/6/7/8 ADC.
Documentation
use embedded_hal::blocking::delay::DelayMs;
use linux_embedded_hal::{Delay, I2cdev};
use mcp3425::{Config, Gain, Resolution, MCP3425};

fn main() {
    println!("Hello, MCP3425!");
    println!();
    println!("------");
    println!();
    println!("This example will write the config to the device.");
    println!("It will then immediately read data from the device, which will fail");
    println!("because no measurement was awaited.");
    println!("Then the program will sleep for 150ms and read the measurement twice");
    println!("in a row. The first measurement should succeed, the second one should");
    println!("fail because the ADC is being polled too quickly.");
    println!();
    println!("------");
    println!();

    let dev = I2cdev::new("/dev/i2c-1").unwrap();
    let address = 0x68;
    let mut adc = MCP3425::continuous(dev, address, Delay);
    let config = Config::default()
        .with_resolution(Resolution::Bits16Sps15)
        .with_gain(Gain::Gain1);

    println!("Writing configuration to device: {:?}", &config);
    adc.set_config(&config).unwrap();
    println!("Reading measurement: {:?}", &adc.read_measurement());
    println!("Sleeping 150ms");
    Delay.delay_ms(150u8);
    println!("Reading measurement: {:?}", &adc.read_measurement());
    println!("Reading measurement: {:?}", &adc.read_measurement());
}