From 0d8be9c38bcb79376cde682af9b55d94c6806b91 Mon Sep 17 00:00:00 2001 From: Rahix <rahix@rahix.de> Date: Thu, 1 Aug 2019 01:17:48 +0200 Subject: [PATCH] feat(pycardium): Add RTC_ALARM interrupt number Signed-off-by: Rahix <rahix@rahix.de> --- Documentation/pycardium/utime.rst | 19 +++++++++++++++++++ pycardium/modules/interrupt.c | 7 ++++++- pycardium/modules/qstrdefs.h | 1 + 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/Documentation/pycardium/utime.rst b/Documentation/pycardium/utime.rst index 457e948e..c765d2fe 100644 --- a/Documentation/pycardium/utime.rst +++ b/Documentation/pycardium/utime.rst @@ -65,3 +65,22 @@ alarm. utime.alarm(alarm, minute_timer) minute_timer(None) + + Alternatively, you can register a callback using the interrupt module and + then call :py:func:`utime.alarm` without a ``callback`` parameter: + + .. code-block:: python + + import interrupt, utime + + def 5_second_timer(x): + current = utime.time() + print("Current: " + str(current)) + alarm = (current // 10) * 10 + 5 + utime.alarm(alarm) + + # This time, we need to register and enable the callback manually + interrupt.set_callback(interrupt.RTC_ALARM, 5_second_timer) + interrupt.enable_callback(interrupt.RTC_ALARM) + + 5_second_timer(None) diff --git a/pycardium/modules/interrupt.c b/pycardium/modules/interrupt.c index e48f54ff..45bea663 100644 --- a/pycardium/modules/interrupt.c +++ b/pycardium/modules/interrupt.c @@ -81,7 +81,12 @@ static const mp_rom_map_elem_t interrupt_module_globals_table[] = { MP_ROM_PTR(&interrupt_enable_callback_obj) }, { MP_ROM_QSTR(MP_QSTR_disable_callback), MP_ROM_PTR(&interrupt_disable_callback_obj) }, - { MP_ROM_QSTR(MP_QSTR_BHI160), MP_OBJ_NEW_SMALL_INT(2) }, + + /* Interrupt Numbers */ + { MP_ROM_QSTR(MP_QSTR_BHI160), + MP_OBJ_NEW_SMALL_INT(EPIC_INT_BHI160_TEST) }, + { MP_ROM_QSTR(MP_QSTR_RTC_ALARM), + MP_OBJ_NEW_SMALL_INT(EPIC_INT_RTC_ALARM) }, }; static MP_DEFINE_CONST_DICT( interrupt_module_globals, interrupt_module_globals_table diff --git a/pycardium/modules/qstrdefs.h b/pycardium/modules/qstrdefs.h index ec162d21..dedc57c0 100644 --- a/pycardium/modules/qstrdefs.h +++ b/pycardium/modules/qstrdefs.h @@ -34,6 +34,7 @@ Q(set_callback) Q(enable_callback) Q(disable_callback) Q(BHI160) +Q(RTC_ALARM) /* display */ Q(sys_display) -- GitLab