diff --git a/examples/embassy/Cargo.toml b/examples/embassy/Cargo.toml index 21cb83f..2790f75 100644 --- a/examples/embassy/Cargo.toml +++ b/examples/embassy/Cargo.toml @@ -27,7 +27,7 @@ embassy-executor = { version = "0.7", features = [ "executor-interrupt" ]} -va108xx-hal = { path = "../../va108xx-hal" } +va108xx-hal = "0.9" va108xx-embassy = { path = "../../va108xx-embassy", default-features = false } [features] diff --git a/examples/rtic/Cargo.toml b/examples/rtic/Cargo.toml index 3af0d22..1a4fc06 100644 --- a/examples/rtic/Cargo.toml +++ b/examples/rtic/Cargo.toml @@ -22,5 +22,5 @@ rtic-sync = { version = "1.3", features = ["defmt-03"] } once_cell = {version = "1", default-features = false, features = ["critical-section"]} ringbuf = { version = "0.4.7", default-features = false, features = ["portable-atomic"] } -va108xx-hal = { version = "0.9", path = "../../va108xx-hal" } +va108xx-hal = "0.9" vorago-reb1 = { path = "../../vorago-reb1" } diff --git a/examples/simple/Cargo.toml b/examples/simple/Cargo.toml index 5949276..4437dd3 100644 --- a/examples/simple/Cargo.toml +++ b/examples/simple/Cargo.toml @@ -16,7 +16,6 @@ embedded-io = "0.6" cortex-m-semihosting = "0.5.0" [dependencies.va108xx-hal] -path = "../../va108xx-hal" version = "0.9" features = ["rt", "defmt"] diff --git a/vorago-reb1/CHANGELOG.md b/vorago-reb1/CHANGELOG.md index 79734bb..418d3f8 100644 --- a/vorago-reb1/CHANGELOG.md +++ b/vorago-reb1/CHANGELOG.md @@ -8,6 +8,12 @@ and this project adheres to [Semantic Versioning](http://semver.org/). ## [unreleased] +## [v0.7.0] 2025-02-13 + +- Bumped `va108xx-hal` dependency to 0.9 +- Minor adjustments to `Button` API. +- `Button`, `Led` and `Leds` now simply wrap a type using a tuple struct. + ## [v0.6.0] 2024-09-30 - Added M95M01 EEPROM module/API diff --git a/vorago-reb1/Cargo.toml b/vorago-reb1/Cargo.toml index 61076e7..1101f0e 100644 --- a/vorago-reb1/Cargo.toml +++ b/vorago-reb1/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "vorago-reb1" -version = "0.6.0" +version = "0.7.0" authors = ["Robin Mueller "] edition = "2021" description = "Board Support Crate for the Vorago REB1 development board" @@ -19,7 +19,6 @@ bitfield = ">=0.17, <=0.18" max116xx-10bit = "0.3" [dependencies.va108xx-hal] -path = "../va108xx-hal" version = "0.9" features = ["rt"] diff --git a/vorago-reb1/src/button.rs b/vorago-reb1/src/button.rs index 9688f09..c7477fa 100644 --- a/vorago-reb1/src/button.rs +++ b/vorago-reb1/src/button.rs @@ -11,23 +11,21 @@ use va108xx_hal::{ }; #[derive(Debug)] -pub struct Button { - button: Pin, -} +pub struct Button(pub Pin); impl Button { pub fn new(pin: Pin) -> Button { - Button { button: pin } + Button(pin) } #[inline] pub fn pressed(&mut self) -> bool { - self.button.is_low().ok().unwrap() + self.0.is_low().ok().unwrap() } #[inline] pub fn released(&mut self) -> bool { - self.button.is_high().ok().unwrap() + self.0.is_high().ok().unwrap() } /// Configures an IRQ on edge. @@ -38,7 +36,7 @@ impl Button { syscfg: Option<&mut pac::Sysconfig>, irqsel: Option<&mut pac::Irqsel>, ) { - self.button + self.0 .configure_edge_interrupt(edge_type, irq_cfg, syscfg, irqsel); } @@ -50,7 +48,7 @@ impl Button { syscfg: Option<&mut pac::Sysconfig>, irqsel: Option<&mut pac::Irqsel>, ) { - self.button + self.0 .configure_level_interrupt(level, irq_cfg, syscfg, irqsel); } @@ -59,6 +57,6 @@ impl Button { /// Please note that you still have to set a clock divisor yourself using the /// [`va108xx_hal::clock::set_clk_div_register`] function in order for this to work. pub fn configure_filter_type(&mut self, filter: FilterType, clksel: FilterClkSel) { - self.button.configure_filter_type(filter, clksel); + self.0.configure_filter_type(filter, clksel); } } diff --git a/vorago-reb1/src/leds.rs b/vorago-reb1/src/leds.rs index 304cddd..8939b24 100644 --- a/vorago-reb1/src/leds.rs +++ b/vorago-reb1/src/leds.rs @@ -15,15 +15,12 @@ pub type LD2 = Pin; pub type LD3 = Pin; pub type LD4 = Pin; -pub struct Leds { - leds: [Led; 3], -} +#[derive(Debug)] +pub struct Leds(pub [Led; 3]); impl Leds { pub fn new(led_pin1: LD2, led_pin2: LD3, led_pin3: LD4) -> Leds { - Leds { - leds: [led_pin1.into(), led_pin2.into(), led_pin3.into()], - } + Leds([led_pin1.into(), led_pin2.into(), led_pin3.into()]) } } @@ -31,13 +28,13 @@ impl core::ops::Deref for Leds { type Target = [Led]; fn deref(&self) -> &[Led] { - &self.leds + &self.0 } } impl core::ops::DerefMut for Leds { fn deref_mut(&mut self) -> &mut [Led] { - &mut self.leds + &mut self.0 } } @@ -45,28 +42,25 @@ impl core::ops::Index for Leds { type Output = Led; fn index(&self, i: usize) -> &Led { - &self.leds[i] + &self.0[i] } } impl core::ops::IndexMut for Leds { fn index_mut(&mut self, i: usize) -> &mut Led { - &mut self.leds[i] + &mut self.0[i] } } -pub struct Led { - pin: DynPin, -} +#[derive(Debug)] +pub struct Led(pub DynPin); macro_rules! ctor { ($($ldx:ident),+) => { $( impl From<$ldx> for Led { fn from(led: $ldx) -> Self { - Led { - pin: led.into() - } + Led(led.into()) } } )+ @@ -79,18 +73,18 @@ impl Led { /// Turns the LED off. Setting the pin high actually turns the LED off #[inline] pub fn off(&mut self) { - self.pin.set_high().ok(); + self.0.set_high().ok(); } /// Turns the LED on. Setting the pin low actually turns the LED on #[inline] pub fn on(&mut self) { - self.pin.set_low().ok(); + self.0.set_low().ok(); } /// Toggles the LED #[inline] pub fn toggle(&mut self) { - self.pin.toggle_with_toggle_reg().ok(); + self.0.toggle_with_toggle_reg().ok(); } }