diff options
| author | Dario Nieuwenhuis <[email protected]> | 2024-12-01 22:21:42 +0100 |
|---|---|---|
| committer | GitHub <[email protected]> | 2024-12-01 22:21:42 +0100 |
| commit | 67579dd0f4b664880d44fe9d49a450e1a41e1286 (patch) | |
| tree | 38fc984dbd0325a3b3974427f3beed97e4435272 | |
| parent | 1a1d5c4689a8b6c57ebb74e99fdea8df39adb037 (diff) | |
| parent | efee03744e0c82c3b6b4419e072129aad3dae841 (diff) | |
Merge pull request #3592 from bugadani/fix
stm32: Fix low-power time driver
| -rw-r--r-- | embassy-stm32/src/time_driver.rs | 7 |
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 | ||
