diff --git a/Cargo.toml b/Cargo.toml index 3eb6207..e44c2a0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -26,6 +26,7 @@ embedded-hal = "1.0.0" [dev-dependencies] linux-embedded-hal = "0.4.0" embedded-hal-mock = { version = "0.10.0", default-features=false, features=["eh1"] } +embedded-hal-bus = "0.1" dummy-pin = "1.0.0" [profile.release] diff --git a/README.md b/README.md index 426881f..791c758 100644 --- a/README.md +++ b/README.md @@ -50,13 +50,13 @@ I wrote an example MIDI player that plays Beethoven's ninth symphony in hardware ```rust use ad983x::{Ad983x, FrequencyRegister}; -use embedded_hal::spi::blocking::ExclusiveDevice; -use linux_embedded_hal::{Spidev, SysfsPin}; +use embedded_hal_bus::spi::ExclusiveDevice; +use linux_embedded_hal::{Delay, SpidevBus, SysfsPin}; fn main() { - let spi = Spidev::open("/dev/spidev0.0").unwrap(); + let spi = SpidevBus::open("/dev/spidev0.0").unwrap(); let chip_select = SysfsPin::new(25); - let dev = ExclusiveDevice::new(spi, chip_select); + let dev = ExclusiveDevice::new(spi, chip_select, Delay); let mut dds = Ad983x::new_ad9833(dev); dds.reset().unwrap(); // reset is necessary before operation dds.set_frequency(FrequencyRegister::F0, 4724).unwrap(); diff --git a/examples/linux.rs b/examples/linux.rs index 7cda6a6..61219ce 100644 --- a/examples/linux.rs +++ b/examples/linux.rs @@ -1,11 +1,11 @@ use ad983x::{Ad983x, FrequencyRegister}; -use embedded_hal::spi::blocking::ExclusiveDevice; -use linux_embedded_hal::{Spidev, SysfsPin}; +use embedded_hal_bus::spi::ExclusiveDevice; +use linux_embedded_hal::{Delay, SpidevBus, SysfsPin}; fn main() { - let spi = Spidev::open("/dev/spidev0.0").unwrap(); + let spi = SpidevBus::open("/dev/spidev0.0").unwrap(); let chip_select = SysfsPin::new(25); - let dev = ExclusiveDevice::new(spi, chip_select); + let dev = ExclusiveDevice::new(spi, chip_select, Delay); let mut dds = Ad983x::new_ad9833(dev); dds.reset().unwrap(); // reset is necessary before operation dds.set_frequency(FrequencyRegister::F0, 4724).unwrap(); diff --git a/src/lib.rs b/src/lib.rs index 7136a9c..98f2787 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -82,12 +82,12 @@ //! //! ```no_run //! use ad983x::{Ad983x, FrequencyRegister}; -//! use embedded_hal::spi::blocking::ExclusiveDevice; -//! use linux_embedded_hal::{SysfsPin, Spidev}; +//! use embedded_hal_bus::spi::ExclusiveDevice; +//! use linux_embedded_hal::{Delay, SpidevBus, SysfsPin}; //! -//! let spi = Spidev::open("/dev/spidev0.0").unwrap(); +//! let spi = SpidevBus::open("/dev/spidev0.0").unwrap(); //! let chip_select = SysfsPin::new(25); -//! let dev = ExclusiveDevice::new(spi, chip_select); +//! let dev = ExclusiveDevice::new(spi, chip_select, Delay); //! let mut dds = Ad983x::new_ad9833(dev); //! dds.reset().unwrap(); // reset is necessary before operation //! dds.set_frequency(FrequencyRegister::F0, 4724).unwrap(); @@ -106,12 +106,12 @@ //! //! ```no_run //! use ad983x::{Ad983x, FrequencyRegister}; -//! use embedded_hal::spi::blocking::ExclusiveDevice; -//! use linux_embedded_hal::{SysfsPin, Spidev}; +//! use embedded_hal_bus::spi::ExclusiveDevice; +//! use linux_embedded_hal::{Delay, SpidevBus, SysfsPin}; //! -//! let spi = Spidev::open("/dev/spidev0.0").unwrap(); +//! let spi = SpidevBus::open("/dev/spidev0.0").unwrap(); //! let chip_select = SysfsPin::new(25); -//! let dev = ExclusiveDevice::new(spi, chip_select); +//! let dev = ExclusiveDevice::new(spi, chip_select, Delay); //! let mut dds = Ad983x::new_ad9833(dev); //! dds.reset().unwrap(); // reset is necessary before operation //! // A4 tone for a 25 MHz clock @@ -131,12 +131,12 @@ //! //! ```no_run //! use ad983x::{Ad983x, PhaseRegister}; -//! use embedded_hal::spi::blocking::ExclusiveDevice; -//! use linux_embedded_hal::{SysfsPin, Spidev}; +//! use embedded_hal_bus::spi::ExclusiveDevice; +//! use linux_embedded_hal::{Delay, SpidevBus, SysfsPin}; //! -//! let spi = Spidev::open("/dev/spidev0.0").unwrap(); +//! let spi = SpidevBus::open("/dev/spidev0.0").unwrap(); //! let chip_select = SysfsPin::new(25); -//! let dev = ExclusiveDevice::new(spi, chip_select); +//! let dev = ExclusiveDevice::new(spi, chip_select, Delay); //! let mut dds = Ad983x::new_ad9833(dev); //! dds.reset().unwrap(); // reset is necessary before operation //! dds.set_phase(PhaseRegister::P1, 4724).unwrap(); @@ -147,12 +147,12 @@ //! //! ```no_run //! use ad983x::{Ad983x, OutputWaveform}; -//! use embedded_hal::spi::blocking::ExclusiveDevice; -//! use linux_embedded_hal::{SysfsPin, Spidev}; +//! use embedded_hal_bus::spi::ExclusiveDevice; +//! use linux_embedded_hal::{Delay, SpidevBus, SysfsPin}; //! -//! let spi = Spidev::open("/dev/spidev0.0").unwrap(); +//! let spi = SpidevBus::open("/dev/spidev0.0").unwrap(); //! let chip_select = SysfsPin::new(25); -//! let dev = ExclusiveDevice::new(spi, chip_select); +//! let dev = ExclusiveDevice::new(spi, chip_select, Delay); //! let mut dds = Ad983x::new_ad9833(dev); //! dds.reset().unwrap(); // reset is necessary before operation //! dds.set_output_waveform(OutputWaveform::Triangle).unwrap(); @@ -162,12 +162,12 @@ //! //! ```no_run //! use ad983x::{Ad983x, PoweredDown}; -//! use embedded_hal::spi::blocking::ExclusiveDevice; -//! use linux_embedded_hal::{SysfsPin, Spidev}; +//! use embedded_hal_bus::spi::ExclusiveDevice; +//! use linux_embedded_hal::{Delay, SpidevBus, SysfsPin}; //! -//! let spi = Spidev::open("/dev/spidev0.0").unwrap(); +//! let spi = SpidevBus::open("/dev/spidev0.0").unwrap(); //! let chip_select = SysfsPin::new(25); -//! let dev = ExclusiveDevice::new(spi, chip_select); +//! let dev = ExclusiveDevice::new(spi, chip_select, Delay); //! let mut dds = Ad983x::new_ad9833(dev); //! dds.reset().unwrap(); // reset is necessary before operation //! dds.set_powered_down(PoweredDown::Dac).unwrap(); @@ -177,12 +177,12 @@ //! //! ```no_run //! use ad983x::{Ad983x, ControlSource}; -//! use embedded_hal::spi::blocking::ExclusiveDevice; -//! use linux_embedded_hal::{SysfsPin, Spidev}; +//! use embedded_hal_bus::spi::ExclusiveDevice; +//! use linux_embedded_hal::{Delay, SpidevBus, SysfsPin}; //! -//! let spi = Spidev::open("/dev/spidev0.0").unwrap(); +//! let spi = SpidevBus::open("/dev/spidev0.0").unwrap(); //! let chip_select = SysfsPin::new(25); -//! let dev = ExclusiveDevice::new(spi, chip_select); +//! let dev = ExclusiveDevice::new(spi, chip_select, Delay); //! let mut dds = Ad983x::new_ad9838(dev); //! dds.reset().unwrap(); // reset is necessary before operation //! dds.set_control_source(ControlSource::HardwarePins).unwrap(); diff --git a/tests/base/mod.rs b/tests/base/mod.rs index a93fa00..c5c2ad9 100644 --- a/tests/base/mod.rs +++ b/tests/base/mod.rs @@ -1,5 +1,5 @@ use ad983x::{marker, Ad983x}; -use embedded_hal_mock::spi::{Mock as SpiMock, Transaction as SpiTrans}; +use embedded_hal_mock::eh1::spi::{Mock as SpiMock, Transaction as SpiTrans}; pub struct BitFlags; impl BitFlags { @@ -22,8 +22,8 @@ impl BitFlags { pub const FREQ1: u8 = 1 << 7; } -pub fn new_ad9833(transactions: &[SpiTrans]) -> Ad983x { - let wrapped: Vec = transactions +pub fn new_ad9833(transactions: &[SpiTrans]) -> Ad983x, marker::Ad9833Ad9837> { + let wrapped: Vec> = transactions .iter() .flat_map(|trans| { [ @@ -33,11 +33,11 @@ pub fn new_ad9833(transactions: &[SpiTrans]) -> Ad983x Ad983x { - let wrapped: Vec = transactions +pub fn new_ad9834(transactions: &[SpiTrans]) -> Ad983x, marker::Ad9834Ad9838> { + let wrapped: Vec> = transactions .iter() .flat_map(|trans| { [ @@ -47,11 +47,11 @@ pub fn new_ad9834(transactions: &[SpiTrans]) -> Ad983x Ad983x { - let wrapped: Vec = transactions +pub fn new_ad9837(transactions: &[SpiTrans]) -> Ad983x, marker::Ad9833Ad9837> { + let wrapped: Vec> = transactions .iter() .flat_map(|trans| { [ @@ -61,11 +61,11 @@ pub fn new_ad9837(transactions: &[SpiTrans]) -> Ad983x Ad983x { - let wrapped: Vec = transactions +pub fn new_ad9838(transactions: &[SpiTrans]) -> Ad983x, marker::Ad9834Ad9838> { + let wrapped: Vec> = transactions .iter() .flat_map(|trans| { [ @@ -75,9 +75,9 @@ pub fn new_ad9838(transactions: &[SpiTrans]) -> Ad983x(device: Ad983x) { - device.destroy().done(); +pub fn destroy(device: Ad983x, IC>) { + device.destroy().done() } diff --git a/tests/integration.rs b/tests/integration.rs index 088c954..dc27b40 100644 --- a/tests/integration.rs +++ b/tests/integration.rs @@ -2,7 +2,7 @@ use ad983x::{ ControlSource, FrequencyRegister as FreqReg, OutputWaveform as OW, PhaseRegister as PhaseReg, PoweredDown as PD, SignBitOutput as SBO, }; -use embedded_hal_mock::spi::Transaction as SpiTrans; +use embedded_hal_mock::eh1::spi::Transaction as SpiTrans; mod base; use crate::base::{destroy, new_ad9833, new_ad9834, new_ad9837, new_ad9838, BitFlags as BF};