diff options
| author | Samuel O'Brien <[email protected]> | 2025-01-12 20:50:16 -0600 |
|---|---|---|
| committer | Samuel O'Brien <[email protected]> | 2025-01-12 20:50:16 -0600 |
| commit | 13b205ece275ecc8e3f020bd687af62df3f03e34 (patch) | |
| tree | fe77f7d49c9392ccfcf63e379537983e4f3d2cd4 | |
| parent | dd4f57677c68fbfd53208154d11def4dc4717de9 (diff) | |
rp: Fix time driver hang
| -rw-r--r-- | embassy-rp/src/time_driver.rs | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/embassy-rp/src/time_driver.rs b/embassy-rp/src/time_driver.rs index aa5d564e7..5aaca03d7 100644 --- a/embassy-rp/src/time_driver.rs +++ b/embassy-rp/src/time_driver.rs | |||
| @@ -86,6 +86,9 @@ impl TimerDriver { | |||
| 86 | fn check_alarm(&self) { | 86 | fn check_alarm(&self) { |
| 87 | let n = 0; | 87 | let n = 0; |
| 88 | critical_section::with(|cs| { | 88 | critical_section::with(|cs| { |
| 89 | // clear the irq | ||
| 90 | TIMER.intr().write(|w| w.set_alarm(n, true)); | ||
| 91 | |||
| 89 | let alarm = &self.alarms.borrow(cs); | 92 | let alarm = &self.alarms.borrow(cs); |
| 90 | let timestamp = alarm.timestamp.get(); | 93 | let timestamp = alarm.timestamp.get(); |
| 91 | if timestamp <= self.now() { | 94 | if timestamp <= self.now() { |
| @@ -97,8 +100,6 @@ impl TimerDriver { | |||
| 97 | } | 100 | } |
| 98 | }); | 101 | }); |
| 99 | 102 | ||
| 100 | // clear the irq | ||
| 101 | TIMER.intr().write(|w| w.set_alarm(n, true)); | ||
| 102 | } | 103 | } |
| 103 | 104 | ||
| 104 | fn trigger_alarm(&self, cs: CriticalSection) { | 105 | fn trigger_alarm(&self, cs: CriticalSection) { |
