]> git.earman.xyz Git - sensor-watch.git/commitdiff
check if callback is null (could happen in wake from backup)
authorJoey Castillo <jose.castillo@gmail.com>
Wed, 11 Aug 2021 02:07:30 +0000 (22:07 -0400)
committerJoey Castillo <jose.castillo@gmail.com>
Wed, 11 Aug 2021 02:07:30 +0000 (22:07 -0400)
watch-library/hpl/rtc/hpl_rtc.c

index 437449ce2cdc507e0b06ab138149c08b6ec04cd4..e580fa780a029aadae8805790297804d226e91fb 100644 (file)
@@ -388,18 +388,24 @@ static void _rtc_interrupt_handler(struct calendar_dev *dev)
        uint16_t interrupt_enabled = hri_rtcmode0_read_INTEN_reg(dev->hw);
 
        if ((interrupt_status & interrupt_enabled) & RTC_MODE2_INTFLAG_ALARM0) {
-               dev->callback_alarm();
+               if (dev->callback_alarm != NULL) {
+                       dev->callback_alarm();
+               }
 
                /* Clear interrupt flag */
                hri_rtcmode0_clear_interrupt_CMP0_bit(dev->hw);
        } else if ((interrupt_status & interrupt_enabled) & RTC_MODE2_INTFLAG_PER7) {
-               dev->callback_tick();
+               if (dev->callback_tick != NULL) {
+                       dev->callback_tick();
+               }
 
                /* Clear interrupt flag */
                hri_rtcmode0_clear_interrupt_PER7_bit(dev->hw);
        } else if ((interrupt_status & interrupt_enabled) & RTC_MODE2_INTFLAG_TAMPER) {
                uint8_t reason = hri_rtc_get_TAMPID_reg(dev->hw, 0x1F);
-               dev->callback_tamper(reason);
+               if (dev->callback_tamper != NULL) {
+                       dev->callback_tamper(reason);
+               }
                hri_rtc_write_TAMPID_reg(dev->hw, reason);
 
                /* Clear interrupt flag */