summaryrefslogtreecommitdiff
path: root/shared-bindings
diff options
context:
space:
mode:
authorDan Halbert <halbert@halwitz.org>2020-11-19 15:43:39 -0500
committerDan Halbert <halbert@halwitz.org>2020-11-19 15:43:39 -0500
commit649c9305364f10ea1dc43179e768ec968d0b9ed5 (patch)
tree1934932a3c6adb4ccf0742bb1e6d3c8a99390bef /shared-bindings
parent5bb3c321e9f19b657363e2b19a8f5b25c4d5eb49 (diff)
wip
Diffstat (limited to 'shared-bindings')
-rw-r--r--shared-bindings/alarm/ResetReason.c24
-rw-r--r--shared-bindings/alarm/ResetReason.h8
-rw-r--r--shared-bindings/alarm/pin/PinAlarm.c12
-rw-r--r--shared-bindings/alarm/pin/PinAlarm.h5
-rw-r--r--shared-bindings/alarm/time/DurationAlarm.h6
5 files changed, 41 insertions, 14 deletions
diff --git a/shared-bindings/alarm/ResetReason.c b/shared-bindings/alarm/ResetReason.c
index 456715a08..c46b2ba8f 100644
--- a/shared-bindings/alarm/ResetReason.c
+++ b/shared-bindings/alarm/ResetReason.c
@@ -28,7 +28,7 @@
#include "shared-bindings/alarm/ResetReason.h"
-MAKE_ENUM_VALUE(alarm_reset_reason_type, reset_reason, POWER_VALID, RESET_REASON_POWER_VALID);
+MAKE_ENUM_VALUE(alarm_reset_reason_type, reset_reason, POWER_VALID, RESET_REASON_POWER_ON);
MAKE_ENUM_VALUE(alarm_reset_reason_type, reset_reason, SOFTWARE, RESET_REASON_SOFTWARE);
MAKE_ENUM_VALUE(alarm_reset_reason_type, reset_reason, DEEP_SLEEP_ALARM, RESET_REASON_DEEP_SLEEP_ALARM);
MAKE_ENUM_VALUE(alarm_reset_reason_type, reset_reason, EXTERNAL, RESET_REASON_EXTERNAL);
@@ -36,23 +36,31 @@ MAKE_ENUM_VALUE(alarm_reset_reason_type, reset_reason, EXTERNAL, RESET_REASON_EX
//| class ResetReason:
//| """The reason the chip was last reset"""
//|
-//| POWER_VALID: object
-//| """The chip was reset and started once power levels were valid."""
+//| POWER_ON: object
+//| """The chip was started from power off."""
+//|
+//| BROWNOUT: object
+//| """The chip was reset due to voltage brownout."""
//|
//| SOFTWARE: object
//| """The chip was reset from software."""
//|
//| DEEP_SLEEP_ALARM: object
-//| """The chip was reset for deep sleep and started by an alarm."""
+//| """The chip was reset for deep sleep and restarted by an alarm."""
+//|
+//| RESET_PIN: object
+//| """The chip was reset by a signal on its reset pin. The pin might be connected to a reset buton."""
//|
-//| EXTERNAL: object
-//| """The chip was reset by an external input such as a button."""
+//| WATCHDOG: object
+//| """The chip was reset by its watchdog timer."""
//|
MAKE_ENUM_MAP(alarm_reset_reason) {
- MAKE_ENUM_MAP_ENTRY(reset_reason, POWER_VALID),
+ MAKE_ENUM_MAP_ENTRY(reset_reason, POWER_ON),
+ MAKE_ENUM_MAP_ENTRY(reset_reason, BROWNOUT),
MAKE_ENUM_MAP_ENTRY(reset_reason, SOFTWARE),
MAKE_ENUM_MAP_ENTRY(reset_reason, DEEP_SLEEP_ALARM),
- MAKE_ENUM_MAP_ENTRY(reset_reason, EXTERNAL),
+ MAKE_ENUM_MAP_ENTRY(reset_reason, RESET_PIN),
+ MAKE_ENUM_MAP_ENTRY(reset_reason, WATCHDOG),
};
STATIC MP_DEFINE_CONST_DICT(alarm_reset_reason_locals_dict, alarm_reset_reason_locals_table);
diff --git a/shared-bindings/alarm/ResetReason.h b/shared-bindings/alarm/ResetReason.h
index 6fe7a4bd3..0325ba8e3 100644
--- a/shared-bindings/alarm/ResetReason.h
+++ b/shared-bindings/alarm/ResetReason.h
@@ -28,12 +28,16 @@
#define MICROPY_INCLUDED_SHARED_BINDINGS_ALARM__RESET_REASON__H
typedef enum {
- RESET_REASON_POWER_APPLIED,
+ RESET_REASON_POWER_ON,
+ RESET_REASON_BROWNOUT,
RESET_REASON_SOFTWARE,
RESET_REASON_DEEP_SLEEP_ALARM,
- RESET_REASON_BUTTON,
+ RESET_REASON_RESET_PIN,
+ RESET_REASON_WATCHDOG,
} alarm_reset_reason_t;
extern const mp_obj_type_t alarm_reset_reason_type;
+extern alarm_reset_reason_t common_hal_alarm_get_reset_reason(void);
+
#endif // MICROPY_INCLUDED_SHARED_BINDINGS_ALARM__RESET_REASON__H
diff --git a/shared-bindings/alarm/pin/PinAlarm.c b/shared-bindings/alarm/pin/PinAlarm.c
index 1404fa3f4..0146a3a1a 100644
--- a/shared-bindings/alarm/pin/PinAlarm.c
+++ b/shared-bindings/alarm/pin/PinAlarm.c
@@ -91,10 +91,14 @@ STATIC mp_obj_t alarm_pin_pin_alarm_binary_op(mp_binary_op_t op, mp_obj_t lhs_in
if (MP_OBJ_IS_TYPE(rhs_in, &alarm_pin_pin_alarm_type)) {
// Pins are singletons, so we can compare them directly.
return mp_obj_new_bool(
- common_hal_pin_pin_alarm_get_pin(lhs_in) == common_hal_pin_pin_alarm_get_pin(rhs_in) &&
- common_hal_pin_pin_alarm_get_level(lhs_in) == common_hal_pin_pin_alarm_get_level(rhs_in) &&
- common_hal_pin_pin_alarm_get_edge(lhs_in) == common_hal_pin_pin_alarm_get_edge(rhs_in) &&
- common_hal_pin_pin_alarm_get_pull(lhs_in) == common_hal_pin_pin_alarm_get_pull(rhs_in))
+ common_hal_alarm_pin_pin_alarm_get_pin(lhs_in) ==
+ common_hal_alarm_pin_pin_alarm_get_pin(rhs_in) &&
+ common_hal_alarm_pin_pin_alarm_get_level(lhs_in) ==
+ common_hal_alarm_pin_pin_alarm_get_level(rhs_in) &&
+ common_hal_alarm_pin_pin_alarm_get_edge(lhs_in) ==
+ common_hal_alarm_pin_pin_alarm_get_edge(rhs_in) &&
+ common_hal_alarm_pin_pin_alarm_get_pull(lhs_in) ==
+ common_hal_alarm_pin_pin_alarm_get_pull(rhs_in));
}
return mp_const_false;
diff --git a/shared-bindings/alarm/pin/PinAlarm.h b/shared-bindings/alarm/pin/PinAlarm.h
index e38c7f620..b7c553ad5 100644
--- a/shared-bindings/alarm/pin/PinAlarm.h
+++ b/shared-bindings/alarm/pin/PinAlarm.h
@@ -28,9 +28,14 @@
#define MICROPY_INCLUDED_SHARED_BINDINGS_ALARM_PIN_PIN_ALARM_H
#include "py/obj.h"
+#include "common-hal/microcontroller/Pin.h"
extern const mp_obj_type_t alarm_pin_pin_alarm_type;
extern void common_hal_alarm_pin_pin_pin_alarm_construct(alarm_pin_pin_alarm_obj_t *self, const mcu_pin_obj_t *pin, bool level, bool edge, bool pull);
+extern mcu_pin_obj_t *common_hal_alarm_pin_pin_alarm_get_pin(alarm_pin_pin_alarm_obj_t *self);
+extern bool common_hal_alarm_pin_pin_alarm_get_level(alarm_pin_pin_alarm_obj_t *self);
+extern bool common_hal_alarm_pin_pin_alarm_get_edge(alarm_pin_pin_alarm_obj_t *self);
+extern bool common_hal_alarm_pin_pin_alarm_get_pull(alarm_pin_pin_alarm_obj_t *self);
#endif // MICROPY_INCLUDED_SHARED_BINDINGS_ALARM_PIN_PIN_ALARM_H
diff --git a/shared-bindings/alarm/time/DurationAlarm.h b/shared-bindings/alarm/time/DurationAlarm.h
index 1e4db6ac5..f6ab4f975 100644
--- a/shared-bindings/alarm/time/DurationAlarm.h
+++ b/shared-bindings/alarm/time/DurationAlarm.h
@@ -31,4 +31,10 @@
extern const mp_obj_type_t alarm_time_duration_alarm_type;
+extern void common_hal_alarm_time_duration_alarm_construct(alarm_time_duration_alarm_obj_t *self, mp_float_t duration);
+extern mp_float_t common_hal_alarm_time_duration_alarm_get_duration(alarm_time_duration_alarm_obj_t *self);
+
+extern void common_hal_alarm_time_duration_alarm_enable(alarm_time_duration_alarm_obj_t *self);
+extern void common_hal_alarm_time_duration_alarm_disable (alarm_time_duration_alarm_obj_t *self);
+
#endif // MICROPY_INCLUDED_SHARED_BINDINGS_ALARM_TIME_DURATION_ALARM_H