aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDario Nieuwenhuis <[email protected]>2024-12-01 22:21:42 +0100
committerGitHub <[email protected]>2024-12-01 22:21:42 +0100
commit67579dd0f4b664880d44fe9d49a450e1a41e1286 (patch)
tree38fc984dbd0325a3b3974427f3beed97e4435272
parent1a1d5c4689a8b6c57ebb74e99fdea8df39adb037 (diff)
parentefee03744e0c82c3b6b4419e072129aad3dae841 (diff)
Merge pull request #3592 from bugadani/fix
stm32: Fix low-power time driver
-rw-r--r--embassy-stm32/src/time_driver.rs7
1 files changed, 5 insertions, 2 deletions
diff --git a/embassy-stm32/src/time_driver.rs b/embassy-stm32/src/time_driver.rs
index 88b6c48bb..00aa3cfa4 100644
--- a/embassy-stm32/src/time_driver.rs
+++ b/embassy-stm32/src/time_driver.rs
@@ -410,11 +410,14 @@ impl RtcDriver {
410 regs_gp16().cnt().write(|w| w.set_cnt(cnt as u16)); 410 regs_gp16().cnt().write(|w| w.set_cnt(cnt as u16));
411 411
412 // Now, recompute all alarms 412 // Now, recompute all alarms
413 for i in 0..ALARM_COUNT { 413 for i in 0..self.alarm_count.load(Ordering::Relaxed) as usize {
414 let alarm_handle = unsafe { AlarmHandle::new(i as u8) }; 414 let alarm_handle = unsafe { AlarmHandle::new(i as u8) };
415 let alarm = self.get_alarm(cs, alarm_handle); 415 let alarm = self.get_alarm(cs, alarm_handle);
416 416
417 self.set_alarm(alarm_handle, alarm.timestamp.get()); 417 if !self.set_alarm(alarm_handle, alarm.timestamp.get()) {
418 // If the alarm timestamp has passed, we need to trigger it
419 self.trigger_alarm(i, cs);
420 }
418 } 421 }
419 } 422 }
420 423