diff options
| -rw-r--r-- | embassy-stm32/src/timer/simple_pwm.rs | 17 | ||||
| -rw-r--r-- | examples/stm32f4/src/bin/ws2812_pwm.rs | 2 |
2 files changed, 9 insertions, 10 deletions
diff --git a/embassy-stm32/src/timer/simple_pwm.rs b/embassy-stm32/src/timer/simple_pwm.rs index acf0d12f9..7a5475c31 100644 --- a/embassy-stm32/src/timer/simple_pwm.rs +++ b/embassy-stm32/src/timer/simple_pwm.rs | |||
| @@ -177,15 +177,14 @@ where | |||
| 177 | let req = self.dma.request(); | 177 | let req = self.dma.request(); |
| 178 | 178 | ||
| 179 | #[cfg(not(any(bdma, gpdma)))] | 179 | #[cfg(not(any(bdma, gpdma)))] |
| 180 | let dma_regs = self.dma.regs(); | 180 | let (isr_bit, isr_reg, ifcr_reg) = { |
| 181 | #[cfg(not(any(bdma, gpdma)))] | 181 | let dma_regs = self.dma.regs(); |
| 182 | let isr_num = self.dma.num() / 4; | 182 | let isr_num = self.dma.num() / 4; |
| 183 | #[cfg(not(any(bdma, gpdma)))] | 183 | let isr_bit = self.dma.num() % 4; |
| 184 | let isr_bit = self.dma.num() % 4; | 184 | let isr_reg = dma_regs.isr(isr_num); |
| 185 | #[cfg(not(any(bdma, gpdma)))] | 185 | let ifcr_reg = dma_regs.ifcr(isr_num); |
| 186 | let isr_reg = dma_regs.isr(isr_num); | 186 | (isr_bit, isr_reg, ifcr_reg) |
| 187 | #[cfg(not(any(bdma, gpdma)))] | 187 | }; |
| 188 | let ifcr_reg = dma_regs.ifcr(isr_num); | ||
| 189 | 188 | ||
| 190 | #[cfg(not(any(bdma, gpdma)))] | 189 | #[cfg(not(any(bdma, gpdma)))] |
| 191 | // clean DMA FIFO error before a transfer | 190 | // clean DMA FIFO error before a transfer |
diff --git a/examples/stm32f4/src/bin/ws2812_pwm.rs b/examples/stm32f4/src/bin/ws2812_pwm.rs index 973743e49..93a89f16a 100644 --- a/examples/stm32f4/src/bin/ws2812_pwm.rs +++ b/examples/stm32f4/src/bin/ws2812_pwm.rs | |||
| @@ -91,7 +91,7 @@ async fn main(_spawner: Spawner) { | |||
| 91 | 91 | ||
| 92 | loop { | 92 | loop { |
| 93 | for &color in color_list { | 93 | for &color in color_list { |
| 94 | ws2812_pwm.gen_waveform(Channel::Ch1, color).await; | 94 | ws2812_pwm.gen_waveform(pwm_channel, color).await; |
| 95 | // ws2812 need at least 50 us low level input to confirm the input data and change it's state | 95 | // ws2812 need at least 50 us low level input to confirm the input data and change it's state |
| 96 | Timer::after_micros(50).await; | 96 | Timer::after_micros(50).await; |
| 97 | // wait until ticker tick | 97 | // wait until ticker tick |
