From 424d9d3aa961d4170be96ac23331aa5a3cba3e5b Mon Sep 17 00:00:00 2001 From: xoviat Date: Tue, 25 Nov 2025 08:23:53 -0600 Subject: stm32: remove waveform method --- embassy-stm32/CHANGELOG.md | 1 + embassy-stm32/src/timer/complementary_pwm.rs | 6 ----- embassy-stm32/src/timer/low_level.rs | 37 ---------------------------- embassy-stm32/src/timer/simple_pwm.rs | 6 ----- 4 files changed, 1 insertion(+), 49 deletions(-) diff --git a/embassy-stm32/CHANGELOG.md b/embassy-stm32/CHANGELOG.md index 6140b3238..949ea03b5 100644 --- a/embassy-stm32/CHANGELOG.md +++ b/embassy-stm32/CHANGELOG.md @@ -7,6 +7,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## Unreleased - ReleaseDate +- change: remove waveform timer method - change: low power: store stop mode for dma channels - fix: Fixed ADC4 enable() for WBA - feat: allow use of anyadcchannel for adc4 diff --git a/embassy-stm32/src/timer/complementary_pwm.rs b/embassy-stm32/src/timer/complementary_pwm.rs index 6d4c70dff..9f34f3ec7 100644 --- a/embassy-stm32/src/timer/complementary_pwm.rs +++ b/embassy-stm32/src/timer/complementary_pwm.rs @@ -266,12 +266,6 @@ impl<'d, T: AdvancedInstance4Channel> ComplementaryPwm<'d, T> { .waveform_up_multi_channel(dma, starting_channel, ending_channel, duty) .await; } - - /// Generate a sequence of PWM waveform - #[inline(always)] - pub async fn waveform(&mut self, dma: Peri<'_, impl super::Dma>, duty: &[u16]) { - self.inner.waveform(dma, duty).await; - } } impl<'d, T: AdvancedInstance4Channel> embedded_hal_02::Pwm for ComplementaryPwm<'d, T> { diff --git a/embassy-stm32/src/timer/low_level.rs b/embassy-stm32/src/timer/low_level.rs index f0105ece8..8fbedafdf 100644 --- a/embassy-stm32/src/timer/low_level.rs +++ b/embassy-stm32/src/timer/low_level.rs @@ -771,43 +771,6 @@ impl<'d, T: GeneralInstance4Channel> Timer<'d, T> { } } - /// Generate a sequence of PWM waveform - pub async fn waveform(&mut self, dma: Peri<'_, impl super::Dma>, duty: &[u16]) { - use crate::pac::timer::vals::Ccds; - - #[allow(clippy::let_unit_value)] // eg. stm32f334 - let req = dma.request(); - - let cc_channel = C::CHANNEL; - - let original_cc_dma_on_update = self.get_cc_dma_selection() == Ccds::ON_UPDATE; - let original_cc_dma_enabled = self.get_cc_dma_enable_state(cc_channel); - - // redirect CC DMA request onto Update Event - if !original_cc_dma_on_update { - self.set_cc_dma_selection(Ccds::ON_UPDATE) - } - - if !original_cc_dma_enabled { - self.set_cc_dma_enable_state(cc_channel, true); - } - - self.waveform_helper(dma, req, cc_channel, duty).await; - - // Since DMA is closed before timer Capture Compare Event trigger DMA is turn off, - // this can almost always trigger a DMA FIFO error. - // - // optional TODO: - // clean FEIF after disable UDE - if !original_cc_dma_enabled { - self.set_cc_dma_enable_state(cc_channel, false); - } - - if !original_cc_dma_on_update { - self.set_cc_dma_selection(Ccds::ON_COMPARE) - } - } - async fn waveform_helper( &mut self, dma: Peri<'_, impl dma::Channel>, diff --git a/embassy-stm32/src/timer/simple_pwm.rs b/embassy-stm32/src/timer/simple_pwm.rs index 6c9ef17e0..15399b108 100644 --- a/embassy-stm32/src/timer/simple_pwm.rs +++ b/embassy-stm32/src/timer/simple_pwm.rs @@ -362,12 +362,6 @@ impl<'d, T: GeneralInstance4Channel> SimplePwm<'d, T> { .waveform_up_multi_channel(dma, starting_channel, ending_channel, duty) .await; } - - /// Generate a sequence of PWM waveform - #[inline(always)] - pub async fn waveform(&mut self, dma: Peri<'_, impl super::Dma>, duty: &[u16]) { - self.inner.waveform(dma, duty).await; - } } impl<'d, T: GeneralInstance4Channel> embedded_hal_1::pwm::ErrorType for SimplePwmChannel<'d, T> { -- cgit