33#include "shared-bindings/io_alarm/__init__.h"
44#include "shared-bindings/microcontroller/Pin.h"
55
6- //| Set Timer Wakeup
6+ //| Set Pin Wakeup
77//|
88STATIC mp_obj_t io_alarm_pin_state (size_t n_args , const mp_obj_t * pos_args , mp_map_t * kw_args ) {
99 enum { ARG_level , ARG_pull };
@@ -16,19 +16,39 @@ STATIC mp_obj_t io_alarm_pin_state(size_t n_args, const mp_obj_t *pos_args, mp_m
1616 mp_arg_parse_all (n_args - 1 , pos_args + 1 , kw_args , MP_ARRAY_SIZE (allowed_args ), allowed_args , args );
1717
1818 mcu_pin_obj_t * pin = validate_obj_is_pin (pos_args [0 ]);
19- common_hal_io_alarm_pin_state ( pin -> number , args [ ARG_level ]. u_int , args [ ARG_pull ]. u_bool );
19+ io_alarm_obj_t * self = m_new_obj ( io_alarm_obj_t );
2020
21- return mp_const_none ;
21+ self -> base .type = & io_alarm_type ;
22+ self -> gpio = pin -> number ;
23+ self -> level = args [ARG_level ].u_int ;
24+ self -> pull = args [ARG_pull ].u_bool ;
25+
26+ return common_hal_io_alarm_pin_state (self );
2227}
2328STATIC MP_DEFINE_CONST_FUN_OBJ_KW (io_alarm_pin_state_obj , 1 , io_alarm_pin_state );
2429
30+
31+ //| Disable Pin Wakeup
32+ //|
33+ STATIC mp_obj_t io_alarm_disable (void ) {
34+ common_hal_io_alarm_disable ();
35+ return mp_const_none ;
36+ }
37+ STATIC MP_DEFINE_CONST_FUN_OBJ_0 (io_alarm_disable_obj , io_alarm_disable );
38+
2539STATIC const mp_rom_map_elem_t io_alarm_module_globals_table [] = {
2640 { MP_ROM_QSTR (MP_QSTR___name__ ), MP_ROM_QSTR (MP_QSTR_io_alarm ) },
2741 { MP_OBJ_NEW_QSTR (MP_QSTR_PinState ), MP_ROM_PTR (& io_alarm_pin_state_obj ) },
42+ { MP_OBJ_NEW_QSTR (MP_QSTR_Disable ), MP_ROM_PTR (& io_alarm_disable_obj ) },
2843};
2944STATIC MP_DEFINE_CONST_DICT (io_alarm_module_globals , io_alarm_module_globals_table );
3045
3146const mp_obj_module_t io_alarm_module = {
3247 .base = { & mp_type_module },
3348 .globals = (mp_obj_dict_t * )& io_alarm_module_globals ,
3449};
50+
51+ const mp_obj_type_t io_alarm_type = {
52+ { & mp_type_type },
53+ .name = MP_QSTR_ioAlarm ,
54+ };
0 commit comments