aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel O'Brien <[email protected]>2025-01-12 20:50:16 -0600
committerSamuel O'Brien <[email protected]>2025-01-12 20:50:16 -0600
commit13b205ece275ecc8e3f020bd687af62df3f03e34 (patch)
treefe77f7d49c9392ccfcf63e379537983e4f3d2cd4
parentdd4f57677c68fbfd53208154d11def4dc4717de9 (diff)
rp: Fix time driver hang
-rw-r--r--embassy-rp/src/time_driver.rs5
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) {