summaryrefslogtreecommitdiff
path: root/ports
diff options
context:
space:
mode:
authorDan Halbert <halbert@halwitz.org>2020-11-20 23:33:39 -0500
committerDan Halbert <halbert@halwitz.org>2020-11-20 23:33:39 -0500
commite4c66990e27779f43f4901d431b6c61f8da85f51 (patch)
tree02b96290a95fbde6925372cdcb53db6746a5347a /ports
parent39e1f52e28c620db65d59f16a29d5476c4868901 (diff)
compiles
Diffstat (limited to 'ports')
-rw-r--r--ports/esp32s2/common-hal/alarm/__init__.c38
-rw-r--r--ports/esp32s2/common-hal/alarm/pin/PinAlarm.c8
-rw-r--r--ports/esp32s2/common-hal/alarm/pin/PinAlarm.h2
-rw-r--r--ports/esp32s2/common-hal/alarm/time/DurationAlarm.c5
4 files changed, 32 insertions, 21 deletions
diff --git a/ports/esp32s2/common-hal/alarm/__init__.c b/ports/esp32s2/common-hal/alarm/__init__.c
index e8cb7b882..d2ac3981e 100644
--- a/ports/esp32s2/common-hal/alarm/__init__.c
+++ b/ports/esp32s2/common-hal/alarm/__init__.c
@@ -26,8 +26,8 @@
*/
#include "shared-bindings/alarm/__init__.h"
-#include "shared-bindings/alarm_io/__init__.h"
-#include "shared-bindings/alarm_time/__init__.h"
+#include "shared-bindings/alarm/pin/PinAlarm.h"
+#include "shared-bindings/alarm/time/DurationAlarm.h"
#include "esp_sleep.h"
@@ -35,41 +35,47 @@ void common_hal_alarm_disable_all(void) {
esp_sleep_disable_wakeup_source(ESP_SLEEP_WAKEUP_ALL);
}
-mp_obj_t common_hal_alarm_get_reset_reason(void) {
+alarm_reset_reason_t common_hal_alarm_get_reset_reason(void) {
switch (esp_sleep_get_wakeup_cause()) {
case ESP_SLEEP_WAKEUP_TIMER:
return RESET_REASON_DEEP_SLEEP_ALARM;
+
case ESP_SLEEP_WAKEUP_EXT0:
return RESET_REASON_DEEP_SLEEP_ALARM;
+
case ESP_SLEEP_WAKEUP_TOUCHPAD:
//TODO: implement TouchIO
case ESP_SLEEP_WAKEUP_UNDEFINED:
default:
- return mp_const_none;
- break;
+ return RESET_REASON_INVALID;
}
}
mp_obj_t common_hal_alarm_get_wake_alarm(void) {
switch (esp_sleep_get_wakeup_cause()) {
- case ESP_SLEEP_WAKEUP_TIMER: ;
- //Wake up from timer.
- alarm_time_obj_t *timer = m_new_obj(alarm_time_obj_t);
- timer->base.type = &alarm_time_type;
+ case ESP_SLEEP_WAKEUP_TIMER: {
+ // Wake up from timer.
+ alarm_time_duration_alarm_obj_t *timer = m_new_obj(alarm_time_duration_alarm_obj_t);
+ timer->base.type = &alarm_time_duration_alarm_type;
return timer;
- case ESP_SLEEP_WAKEUP_EXT0: ;
- //Wake up from GPIO
- alarm_io_obj_t *ext0 = m_new_obj(alarm_io_obj_t);
- ext0->base.type = &alarm_io_type;
+ }
+
+ case ESP_SLEEP_WAKEUP_EXT0: {
+ // Wake up from GPIO
+ alarm_pin_pin_alarm_obj_t *ext0 = m_new_obj(alarm_pin_pin_alarm_obj_t);
+ ext0->base.type = &alarm_pin_pin_alarm_type;
return ext0;
+ }
+
case ESP_SLEEP_WAKEUP_TOUCHPAD:
- //TODO: implement TouchIO
- //Wake up from touch on pad, esp_sleep_get_touchpad_wakeup_status()
+ // TODO: implement TouchIO
+ // Wake up from touch on pad, esp_sleep_get_touchpad_wakeup_status()
break;
+
case ESP_SLEEP_WAKEUP_UNDEFINED:
default:
- //Not a deep sleep reset
+ // Not a deep sleep reset.
break;
}
return mp_const_none;
diff --git a/ports/esp32s2/common-hal/alarm/pin/PinAlarm.c b/ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
index 121140666..6ac3d05f8 100644
--- a/ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
+++ b/ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
@@ -27,15 +27,17 @@
#include "esp_sleep.h"
-#include "shared-bindings/alarm/time/DurationAlarm.h"
+#include "shared-bindings/alarm/pin/PinAlarm.h"
+#include "shared-bindings/microcontroller/Pin.h"
-void common_hal_alarm_pin_pin_pin_alarm_construct(alarm_pin_pin_alarm_obj_t *self, mcu_pin_obj_t *pin, bool level, bool edge, bool pull) {
+void common_hal_alarm_pin_pin_alarm_construct(alarm_pin_pin_alarm_obj_t *self, const mcu_pin_obj_t *pin, bool level, bool edge, bool pull) {
self->pin = pin;
self->level = level;
self->edge = edge;
self->pull = pull;
+}
-mcu_pin_obj_t *common_hal_alarm_pin_pin_alarm_get_pin(alarm_pin_pin_alarm_obj_t *self) {
+const mcu_pin_obj_t *common_hal_alarm_pin_pin_alarm_get_pin(alarm_pin_pin_alarm_obj_t *self) {
return self->pin;
}
diff --git a/ports/esp32s2/common-hal/alarm/pin/PinAlarm.h b/ports/esp32s2/common-hal/alarm/pin/PinAlarm.h
index 527391858..c6a760b96 100644
--- a/ports/esp32s2/common-hal/alarm/pin/PinAlarm.h
+++ b/ports/esp32s2/common-hal/alarm/pin/PinAlarm.h
@@ -29,7 +29,7 @@
typedef struct {
mp_obj_base_t base;
- mcu_pin_obj_t *pin;
+ const mcu_pin_obj_t *pin;
bool level;
bool edge;
bool pull;
diff --git a/ports/esp32s2/common-hal/alarm/time/DurationAlarm.c b/ports/esp32s2/common-hal/alarm/time/DurationAlarm.c
index bf1a6cc42..80bf4244e 100644
--- a/ports/esp32s2/common-hal/alarm/time/DurationAlarm.c
+++ b/ports/esp32s2/common-hal/alarm/time/DurationAlarm.c
@@ -27,6 +27,8 @@
#include "esp_sleep.h"
+#include "py/runtime.h"
+
#include "shared-bindings/alarm/time/DurationAlarm.h"
void common_hal_alarm_time_duration_alarm_construct(alarm_time_duration_alarm_obj_t *self, mp_float_t duration) {
@@ -36,7 +38,8 @@ void common_hal_alarm_time_duration_alarm_construct(alarm_time_duration_alarm_ob
mp_float_t common_hal_alarm_time_duration_alarm_get_duration(alarm_time_duration_alarm_obj_t *self) {
return self->duration;
}
-void common_hal_alarm_time_duration_alarm_enable(alarm_time_duration_alarm_obj_t *self)
+
+void common_hal_alarm_time_duration_alarm_enable(alarm_time_duration_alarm_obj_t *self) {
if (esp_sleep_enable_timer_wakeup((uint64_t) (self->duration * 1000000)) == ESP_ERR_INVALID_ARG) {
mp_raise_ValueError(translate("duration out of range"));
}