diff options
| -rw-r--r-- | embassy-nrf/src/pwm.rs | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/embassy-nrf/src/pwm.rs b/embassy-nrf/src/pwm.rs index 3301093f5..90cdf69c6 100644 --- a/embassy-nrf/src/pwm.rs +++ b/embassy-nrf/src/pwm.rs | |||
| @@ -438,6 +438,11 @@ impl<'d, T: Instance> SimplePwm<'d, T> { | |||
| 438 | 438 | ||
| 439 | self.duty[channel] = duty & 0x7FFF; | 439 | self.duty[channel] = duty & 0x7FFF; |
| 440 | 440 | ||
| 441 | // reload ptr in case self was moved | ||
| 442 | r.seq0 | ||
| 443 | .ptr | ||
| 444 | .write(|w| unsafe { w.bits((&self.duty).as_ptr() as u32) }); | ||
| 445 | |||
| 441 | // defensive before seqstart | 446 | // defensive before seqstart |
| 442 | compiler_fence(Ordering::SeqCst); | 447 | compiler_fence(Ordering::SeqCst); |
| 443 | 448 | ||
