diff --git a/rtic-monotonics/Cargo.toml b/rtic-monotonics/Cargo.toml index 2e75bdb15b..0c942a20d7 100644 --- a/rtic-monotonics/Cargo.toml +++ b/rtic-monotonics/Cargo.toml @@ -17,18 +17,22 @@ license = "MIT OR Apache-2.0" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -cortex-m = { version = "0.7.6" } -embedded-hal-async = "0.2.0-alpha.0" -fugit = { version = "0.3.6", features = ["defmt"] } rtic-time = { version = "1.0.0-alpha.0", path = "../rtic-time" } +embedded-hal-async = "0.2.0-alpha.0" +fugit = { version = "0.3.6" } atomic-polyfill = "1" cfg-if = "1.0.0" +cortex-m = { version = "0.7.6", optional = true } rp2040-pac = { version = ">=0.2.0,<0.5", optional = true } [features] default = [] +defmt = ["fugit/defmt"] +# Systick on Cortex-M, default 1 kHz +cortex_m_systick = ["dep:cortex-m"] systick_100hz = [] systick_10khz = [] +# Timer peripheral on the RP2040 rp2040 = ["dep:rp2040-pac"] diff --git a/rtic-monotonics/src/lib.rs b/rtic-monotonics/src/lib.rs index fb5dc8a73f..4eb2261daf 100644 --- a/rtic-monotonics/src/lib.rs +++ b/rtic-monotonics/src/lib.rs @@ -9,6 +9,7 @@ pub use rtic_time::{Monotonic, TimeoutError, TimerQueue}; +#[cfg(feature = "cortex_m_sytick")] pub mod systick; #[cfg(feature = "rp2040")] diff --git a/rtic-monotonics/src/rp2040.rs b/rtic-monotonics/src/rp2040.rs index 448c3880c2..064a50df69 100644 --- a/rtic-monotonics/src/rp2040.rs +++ b/rtic-monotonics/src/rp2040.rs @@ -106,7 +106,7 @@ impl Monotonic for Timer { } fn pend_interrupt() { - cortex_m::peripheral::NVIC::pend(Interrupt::TIMER_IRQ_0); + rp2040_pac::NVIC::pend(Interrupt::TIMER_IRQ_0); } fn on_interrupt() {}