diff --git a/Cargo.toml b/Cargo.toml index cced0d8..87581a2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,12 +1,18 @@ [package] name = "si5351" -version = "0.1.5" -keywords = ["embedded-hal-driver", "clock", "ham-radio"] -categories = ["embedded", "no-std", "hardware-support"] +version = "0.2.0" +keywords = ["embedded", "no-std", "embedded-hal-driver", "clock", "ham-radio"] +categories = ["embedded", "no-std"] authors = ["Ilya Epifanov "] description = "A platform agnostic driver for the Si5351 clock generator" license = "MIT OR Apache-2.0" +exclude = [".travis.yml", ".gitignore"] +repository = "https://github.com/ilya-epifanov/si5351" + +[badges.travis-ci] +branch = "master" +repository = "jamwaffles/ssd1306" [dependencies] -embedded-hal = "0.1" +embedded-hal = "0.2.2" bitflags = "1.0" diff --git a/Xargo.toml b/Xargo.toml deleted file mode 100644 index f0c1e62..0000000 --- a/Xargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[dependencies.core] -stage = 0 - -[dependencies.compiler_builtins] -git = "https://github.com/rust-lang-nursery/compiler-builtins" -features = ["mem"] -stage = 1 diff --git a/src/lib.rs b/src/lib.rs index ad3feb6..f4d637b 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -46,7 +46,7 @@ use si5351; use si5351::{Si5351, Si5351Device}; # fn main() { -let mut clock = Si5351Device::new(&mut i2c, false, 25_000_000); +let mut clock = Si5351Device::new(i2c, false, 25_000_000); clock.init(si5351::CrystalLoad::_10)?; # } ``` @@ -59,7 +59,7 @@ use si5351; use si5351::{Si5351, Si5351Device}; # fn main() { -let mut clock = Si5351Device::new_adafruit_module(&mut i2c); +let mut clock = Si5351Device::new_adafruit_module(i2c); clock.init_adafruit_module()?; # } ``` @@ -78,7 +78,6 @@ clock.set_frequency(si5351::PLL::A, si5351::ClockOutput::Clk0, 14_175_000)?; */ //#![deny(missing_docs)] #![deny(warnings)] -#![feature(unsize)] #![no_std] #[macro_use] @@ -340,8 +339,8 @@ fn i2c_error(_: E) -> Error { } /// Si5351 driver -pub struct Si5351Device<'a, I2C: 'a> { - i2c: &'a mut I2C, +pub struct Si5351Device { + i2c: I2C, address: u8, xtal_freq: u32, clk_enabled_mask: u8, @@ -349,7 +348,7 @@ pub struct Si5351Device<'a, I2C: 'a> { ms_src_mask: u8, } -pub trait Si5351<'a> { +pub trait Si5351 { fn init_adafruit_module(&mut self) -> Result<(), Error>; fn init(&mut self, xtal_load: CrystalLoad) -> Result<(), Error>; fn read_device_status(&mut self) -> Result; @@ -370,12 +369,12 @@ pub trait Si5351<'a> { fn select_clock_pll(&mut self, clocl: ClockOutput, pll: PLL); } -impl<'a, I2C, E> Si5351Device<'a, I2C> +impl Si5351Device where I2C: WriteRead + Write, { /// Creates a new driver from a I2C peripheral - pub fn new(i2c: &'a mut I2C, address_bit: bool, xtal_freq: u32) -> Self { + pub fn new(i2c: I2C, address_bit: bool, xtal_freq: u32) -> Self { let si5351 = Si5351Device { i2c, address: ADDRESS | if address_bit { 1 } else { 0 }, @@ -388,7 +387,7 @@ impl<'a, I2C, E> Si5351Device<'a, I2C> si5351 } - pub fn new_adafruit_module(i2c: &'a mut I2C) -> Self { + pub fn new_adafruit_module(i2c: I2C) -> Self { Si5351Device::new(i2c, false, 25_000_000) } @@ -465,7 +464,7 @@ impl<'a, I2C, E> Si5351Device<'a, I2C> } } -impl<'a, I2C, E> Si5351<'a> for Si5351Device<'a, I2C> where +impl Si5351 for Si5351Device where I2C: WriteRead + Write { fn init_adafruit_module(&mut self) -> Result<(), Error> {