mirror of
https://github.com/rtic-rs/rtic.git
synced 2024-11-23 20:22:51 +01:00
Make embedded-hal-async dependency optional for better compatibility with HALs
Some hals implement traits for embedded-hal version `=1.0.0.alpha.<not 9>`, which is explicitly incompatible with the version `=1.0.0.alpha.9` which embedded-hal-async depends on. Making the dependency optional allows downstream projects to include rtic-monotonic without requiring that all of their other libraries also implement that specific version of embedded-hal 1.0
This commit is contained in:
parent
60d5e9e1db
commit
002d0b0d16
3 changed files with 5 additions and 5 deletions
|
@ -18,7 +18,7 @@ license = "MIT OR Apache-2.0"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
rtic-time = { version = "1.0.0-alpha.0", path = "../rtic-time" }
|
rtic-time = { version = "1.0.0-alpha.0", path = "../rtic-time" }
|
||||||
embedded-hal-async = "0.2.0-alpha.0"
|
embedded-hal-async = { version = "0.2.0-alpha.0", optional = true }
|
||||||
fugit = { version = "0.3.6" }
|
fugit = { version = "0.3.6" }
|
||||||
atomic-polyfill = "1"
|
atomic-polyfill = "1"
|
||||||
cfg-if = "1.0.0"
|
cfg-if = "1.0.0"
|
||||||
|
|
|
@ -3,7 +3,6 @@
|
||||||
use super::Monotonic;
|
use super::Monotonic;
|
||||||
pub use super::{TimeoutError, TimerQueue};
|
pub use super::{TimeoutError, TimerQueue};
|
||||||
use core::future::Future;
|
use core::future::Future;
|
||||||
use embedded_hal_async::delay::DelayUs;
|
|
||||||
pub use fugit::ExtU64;
|
pub use fugit::ExtU64;
|
||||||
use rp2040_pac::{timer, Interrupt, RESETS, TIMER};
|
use rp2040_pac::{timer, Interrupt, RESETS, TIMER};
|
||||||
|
|
||||||
|
@ -116,7 +115,8 @@ impl Monotonic for Timer {
|
||||||
fn disable_timer() {}
|
fn disable_timer() {}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl DelayUs for Timer {
|
#[cfg(feature = "embedded-hal-async")]
|
||||||
|
impl embedded_hal_async::delay::DelayUs for Timer {
|
||||||
type Error = core::convert::Infallible;
|
type Error = core::convert::Infallible;
|
||||||
|
|
||||||
async fn delay_us(&mut self, us: u32) -> Result<(), Self::Error> {
|
async fn delay_us(&mut self, us: u32) -> Result<(), Self::Error> {
|
||||||
|
|
|
@ -5,7 +5,6 @@ pub use super::{TimeoutError, TimerQueue};
|
||||||
use atomic_polyfill::{AtomicU32, Ordering};
|
use atomic_polyfill::{AtomicU32, Ordering};
|
||||||
use core::future::Future;
|
use core::future::Future;
|
||||||
use cortex_m::peripheral::SYST;
|
use cortex_m::peripheral::SYST;
|
||||||
use embedded_hal_async::delay::DelayUs;
|
|
||||||
pub use fugit::ExtU32;
|
pub use fugit::ExtU32;
|
||||||
|
|
||||||
// Features should be additive, here systick_100hz gets picked if both
|
// Features should be additive, here systick_100hz gets picked if both
|
||||||
|
@ -136,7 +135,8 @@ impl Monotonic for Systick {
|
||||||
fn disable_timer() {}
|
fn disable_timer() {}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl DelayUs for Systick {
|
#[cfg(feature = "embedded-hal-async")]
|
||||||
|
impl embedded_hal_async::delay::DelayUs for Systick {
|
||||||
type Error = core::convert::Infallible;
|
type Error = core::convert::Infallible;
|
||||||
|
|
||||||
async fn delay_us(&mut self, us: u32) -> Result<(), Self::Error> {
|
async fn delay_us(&mut self, us: u32) -> Result<(), Self::Error> {
|
||||||
|
|
Loading…
Reference in a new issue