From d1555f4d5fed9001bc743d6e13ec5be93896d599 Mon Sep 17 00:00:00 2001 From: Ekaterina Savelyeva Date: Fri, 25 Apr 2025 13:05:48 +0400 Subject: [PATCH 1/2] Dead-time computation in complementary PWM fixed (missing DTG msbs added) --- embassy-stm32/src/timer/complementary_pwm.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/embassy-stm32/src/timer/complementary_pwm.rs b/embassy-stm32/src/timer/complementary_pwm.rs index f543bafab..869e3df3b 100644 --- a/embassy-stm32/src/timer/complementary_pwm.rs +++ b/embassy-stm32/src/timer/complementary_pwm.rs @@ -240,11 +240,11 @@ fn compute_dead_time_value(value: u16) -> (Ckd, u8) { let (these_bits, result) = if target < 128 { (target as u8, target) } else if target < 255 { - (64 + (target / 2) as u8, (target - target % 2)) + ((64 + (target / 2) as u8) | 128, (target - target % 2)) } else if target < 508 { - (32 + (target / 8) as u8, (target - target % 8)) + ((32 + (target / 8) as u8) | 192, (target - target % 8)) } else if target < 1008 { - (32 + (target / 16) as u8, (target - target % 16)) + ((32 + (target / 16) as u8) | 224, (target - target % 16)) } else { (u8::MAX, 1008) }; From edc585a8ef0242604890df3f89d0abe766782c8d Mon Sep 17 00:00:00 2001 From: Ekaterina Savelyeva Date: Fri, 25 Apr 2025 13:36:38 +0400 Subject: [PATCH 2/2] Test for dead-time computation corrected --- embassy-stm32/src/timer/complementary_pwm.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/embassy-stm32/src/timer/complementary_pwm.rs b/embassy-stm32/src/timer/complementary_pwm.rs index 869e3df3b..8eec6c0c7 100644 --- a/embassy-stm32/src/timer/complementary_pwm.rs +++ b/embassy-stm32/src/timer/complementary_pwm.rs @@ -300,7 +300,7 @@ mod tests { TestRun { value: 400, ckd: Ckd::DIV1, - bits: 32 + (400u16 / 8) as u8, + bits: 210, }, TestRun { value: 600,