From e0691c6d8dd4a80fe2a91ae90550fe0de3a4e3e2 Mon Sep 17 00:00:00 2001 From: Ferdinand Bachmann <theferdi265@gmail.com> Date: Sat, 31 Aug 2019 00:36:53 +0200 Subject: [PATCH] pycardium/modules/utime.c: add bindings for monotonic time --- pycardium/modules/qstrdefs.h | 2 ++ pycardium/modules/utime.c | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/pycardium/modules/qstrdefs.h b/pycardium/modules/qstrdefs.h index 68c40810e..ebb88ef35 100644 --- a/pycardium/modules/qstrdefs.h +++ b/pycardium/modules/qstrdefs.h @@ -47,6 +47,8 @@ Q(ticks_add) Q(ticks_diff) Q(localtime) Q(mktime) +Q(monotonic) +Q(monotonic_ms) Q(time) Q(time_ms) Q(set_time) diff --git a/pycardium/modules/utime.c b/pycardium/modules/utime.c index 88fe86b9a..e9dad9373 100644 --- a/pycardium/modules/utime.c +++ b/pycardium/modules/utime.c @@ -51,6 +51,22 @@ static mp_obj_t time_time_ms(void) } MP_DEFINE_CONST_FUN_OBJ_0(time_time_ms_obj, time_time_ms); +static mp_obj_t time_monotonic(void) +{ + mp_int_t seconds; + seconds = epic_rtc_get_monotonic_seconds(); + return mp_obj_new_int(seconds); +} +MP_DEFINE_CONST_FUN_OBJ_0(time_monotonic_obj, time_monotonic); + +static mp_obj_t time_monotonic_ms(void) +{ + uint64_t milliseconds; + milliseconds = epic_rtc_get_monotonic_milliseconds(); + return mp_obj_new_int_from_ull(milliseconds); +} +MP_DEFINE_CONST_FUN_OBJ_0(time_monotonic_ms_obj, time_monotonic_ms); + static mp_obj_t time_localtime(size_t n_args, const mp_obj_t *args) { mp_int_t seconds; @@ -130,6 +146,8 @@ static const mp_rom_map_elem_t time_module_globals_table[] = { { MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_utime) }, { MP_ROM_QSTR(MP_QSTR_time), MP_ROM_PTR(&time_time_obj) }, { MP_ROM_QSTR(MP_QSTR_time_ms), MP_ROM_PTR(&time_time_ms_obj) }, + { MP_ROM_QSTR(MP_QSTR_monotonic), MP_ROM_PTR(&time_monotonic_obj) }, + { MP_ROM_QSTR(MP_QSTR_monotonic_ms), MP_ROM_PTR(&time_monotonic_ms_obj) }, { MP_ROM_QSTR(MP_QSTR_set_time), MP_ROM_PTR(&time_set_time_obj) }, { MP_ROM_QSTR(MP_QSTR_set_unix_time), MP_ROM_PTR(&time_set_unix_time_obj) }, -- GitLab