From 397b2f6bb5bf58336f216223fb9ea091186b42b6 Mon Sep 17 00:00:00 2001 From: Max Holliday Date: Thu, 21 Oct 2021 10:03:46 -0700 Subject: [PATCH] pin alarm configures pins again before deep sleep --- ports/atmel-samd/common-hal/alarm/pin/PinAlarm.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/ports/atmel-samd/common-hal/alarm/pin/PinAlarm.c b/ports/atmel-samd/common-hal/alarm/pin/PinAlarm.c index bad3d2b0fd..2e1d596c39 100644 --- a/ports/atmel-samd/common-hal/alarm/pin/PinAlarm.c +++ b/ports/atmel-samd/common-hal/alarm/pin/PinAlarm.c @@ -185,6 +185,16 @@ void alarm_pin_pinalarm_set_alarms(bool deep_sleep, size_t n_alarms, const mp_ob for (size_t i = 0; i < n_alarms; i++) { if (mp_obj_is_type(alarms[i], &alarm_pin_pinalarm_type)) { alarm_pin_pinalarm_obj_t *alarm = MP_OBJ_TO_PTR(alarms[i]); + gpio_set_pin_function(alarm->pin->number, GPIO_PIN_FUNCTION_A); + if (alarm->pull) { + if (alarm->value) { + // detect rising edge means pull down + gpio_set_pin_pull_mode(alarm->pin->number, GPIO_PULL_DOWN); + } else { + // detect falling edge means pull up + gpio_set_pin_pull_mode(alarm->pin->number, GPIO_PULL_UP); + } + } if (deep_sleep) { // Tamper Pins: IN0:PB00; IN1:PB02; IN2:PA02; IN3:PC00; IN4:PC01; OUT:PB01 // Only these pins can do TAMPER