aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHenrik Tjäder <henrik@tjaders.com>2023-02-04 10:14:12 +0100
committerHenrik Tjäder <henrik@tjaders.com>2023-03-01 00:35:13 +0100
commit858160a55d839bb4064006aa55ddb581259a3074 (patch)
tree061990c8b008ab9ad3c9f21d5ec2f58f44877c9f
parentace010f4e9a7cf1d8b90e9a05eb1b7ea583c2c81 (diff)
rtic-monotonics: Simplify features, default is 1kHz
Make 100 Hz or 10 kHz opt in through features, which are meant for testing primarily.
-rw-r--r--rtic-monotonics/CHANGELOG.md2
-rw-r--r--rtic-monotonics/Cargo.toml4
-rw-r--r--rtic-monotonics/src/systick_monotonic.rs25
-rw-r--r--rtic/Cargo.toml2
4 files changed, 19 insertions, 14 deletions
diff --git a/rtic-monotonics/CHANGELOG.md b/rtic-monotonics/CHANGELOG.md
index e990223..d3a9d84 100644
--- a/rtic-monotonics/CHANGELOG.md
+++ b/rtic-monotonics/CHANGELOG.md
@@ -13,4 +13,4 @@ For each category, *Added*, *Changed*, *Fixed* add new entries at the top!
### Fixed
-## [v0.1.0] - 2023-xx-xx
+## [v1.0.0] - 2023-xx-xx
diff --git a/rtic-monotonics/Cargo.toml b/rtic-monotonics/Cargo.toml
index f94a78b..4014fe7 100644
--- a/rtic-monotonics/Cargo.toml
+++ b/rtic-monotonics/Cargo.toml
@@ -22,10 +22,8 @@ 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" }
atomic-polyfill = "1"
+cfg-if = "1.0.0"
[features]
-default = ["systick_1khz"]
-
systick_100hz = []
-systick_1khz = []
systick_10khz = []
diff --git a/rtic-monotonics/src/systick_monotonic.rs b/rtic-monotonics/src/systick_monotonic.rs
index a5a0aef..885da92 100644
--- a/rtic-monotonics/src/systick_monotonic.rs
+++ b/rtic-monotonics/src/systick_monotonic.rs
@@ -8,16 +8,23 @@ use cortex_m::peripheral::SYST;
use embedded_hal_async::delay::DelayUs;
pub use fugit::ExtU32;
-#[cfg(feature = "systick_100hz")]
-const TIMER_HZ: u32 = 100;
-
-#[cfg(feature = "systick_1khz")]
-const TIMER_HZ: u32 = 1_000;
-
-#[cfg(feature = "systick_10khz")]
-const TIMER_HZ: u32 = 10_000;
+// Features should be additive, here systick_100hz gets picked if both
+// `systick_100hz` and `systick_10khz` are enabled.
+
+cfg_if::cfg_if! {
+ if #[cfg(feature = "systick_100hz")]
+ {
+ const TIMER_HZ: u32 = 100;
+ } else if #[cfg(feature = "systick_10khz")]
+ {
+ const TIMER_HZ: u32 = 10_000;
+ } else {
+ // Default case is 1 kHz
+ const TIMER_HZ: u32 = 1_000;
+ }
+}
-/// Systick implementing `rtic_monotonic::Monotonic` which runs at 1 kHz.
+/// Systick implementing `rtic_monotonic::Monotonic` which runs at 1 kHz, 100Hz or 10 kHz.
pub struct Systick;
impl Systick {
diff --git a/rtic/Cargo.toml b/rtic/Cargo.toml
index d722e65..1aba9c7 100644
--- a/rtic/Cargo.toml
+++ b/rtic/Cargo.toml
@@ -51,7 +51,7 @@ lm3s6965 = "0.1.3"
cortex-m-semihosting = "0.5.0"
rtic-time = { path = "../rtic-time" }
rtic-channel = { path = "../rtic-channel" }
-rtic-monotonics = { path = "../rtic-monotonics", default-features = false }
+rtic-monotonics = { path = "../rtic-monotonics" }
[dev-dependencies.futures]
version = "0.3.26"