@@ -64,7 +64,7 @@ void alarm_set_wakeup_reason(stm_sleep_source_t reason) {
64
64
true_deep_wake_reason = reason ;
65
65
}
66
66
67
- STATIC stm_sleep_source_t _get_wakeup_cause (void ) {
67
+ stm_sleep_source_t alarm_get_wakeup_cause (void ) {
68
68
// If in light/fake sleep, check modules
69
69
if (alarm_pin_pinalarm_woke_us_up ()) {
70
70
return STM_WAKEUP_GPIO ;
@@ -73,18 +73,18 @@ STATIC stm_sleep_source_t _get_wakeup_cause(void) {
73
73
return STM_WAKEUP_RTC ;
74
74
}
75
75
// Check to see if we woke from deep sleep (reason set in port_init)
76
- if (true_deep_wake_reason ) {
76
+ if (true_deep_wake_reason != STM_WAKEUP_UNDEF ) {
77
77
return true_deep_wake_reason ;
78
78
}
79
79
return STM_WAKEUP_UNDEF ;
80
80
}
81
81
82
82
bool common_hal_alarm_woken_from_sleep (void ) {
83
- return _get_wakeup_cause () != STM_WAKEUP_UNDEF ;
83
+ return alarm_get_wakeup_cause () != STM_WAKEUP_UNDEF ;
84
84
}
85
85
86
86
STATIC mp_obj_t _get_wake_alarm (size_t n_alarms , const mp_obj_t * alarms ) {
87
- stm_sleep_source_t cause = _get_wakeup_cause ();
87
+ stm_sleep_source_t cause = alarm_get_wakeup_cause ();
88
88
switch (cause ) {
89
89
case STM_WAKEUP_RTC : {
90
90
return alarm_time_timealarm_get_wakeup_alarm (n_alarms , alarms );
@@ -156,6 +156,7 @@ void common_hal_alarm_set_deep_sleep_alarms(size_t n_alarms, const mp_obj_t *ala
156
156
}
157
157
158
158
void NORETURN common_hal_alarm_enter_deep_sleep (void ) {
159
+ alarm_set_wakeup_reason (STM_WAKEUP_UNDEF );
159
160
alarm_pin_pinalarm_prepare_for_deep_sleep ();
160
161
alarm_time_timealarm_prepare_for_deep_sleep ();
161
162
port_disable_tick ();
@@ -182,6 +183,8 @@ void common_hal_alarm_pretending_deep_sleep(void) {
182
183
GPIO_InitStruct .Pull = GPIO_PULLDOWN ;
183
184
HAL_GPIO_Init (GPIOA , & GPIO_InitStruct );
184
185
186
+ alarm_set_wakeup_reason (STM_WAKEUP_UNDEF );
187
+
185
188
port_idle_until_interrupt ();
186
189
}
187
190
0 commit comments