diff options
Diffstat (limited to 'src/devices/ads1013.rs')
-rw-r--r-- | src/devices/ads1013.rs | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/devices/ads1013.rs b/src/devices/ads1013.rs new file mode 100644 index 0000000..b4628b5 --- /dev/null +++ b/src/devices/ads1013.rs @@ -0,0 +1,28 @@ +//! Functions exclusive of ADS1013 + +extern crate embedded_hal as hal; +use hal::blocking; +use core::marker::PhantomData; +use { Ads1x1x, DEVICE_BASE_ADDRESS, SlaveAddr, ic }; +use interface::I2cInterface; + +impl<I2C, E> Ads1x1x<I2cInterface<I2C>, ic::ADS1013> +where + I2C: blocking::i2c::Write<Error = E> + blocking::i2c::WriteRead<Error = E> +{ + /// Create a new instance of the ADS1013 device. + pub fn new_ads1013(i2c: I2C, address: SlaveAddr) -> Self { + Ads1x1x { + iface: I2cInterface { + i2c, + address: address.addr(DEVICE_BASE_ADDRESS) + }, + _ic: PhantomData + } + } + + /// Destroy driver instance, return I²C bus instance. + pub fn destroy_ads1013(self) -> I2C { + self.iface.i2c + } +} |