aboutsummaryrefslogtreecommitdiff
path: root/shared-bindings/time/__init__.c
diff options
context:
space:
mode:
Diffstat (limited to 'shared-bindings/time/__init__.c')
-rw-r--r--shared-bindings/time/__init__.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/shared-bindings/time/__init__.c b/shared-bindings/time/__init__.c
index 105758951..6956cc4e6 100644
--- a/shared-bindings/time/__init__.c
+++ b/shared-bindings/time/__init__.c
@@ -52,7 +52,9 @@
//| :rtype: float
//|
STATIC mp_obj_t time_monotonic(void) {
- return mp_obj_new_float(common_hal_time_monotonic() / 1000.0);
+ uint64_t time64 = common_hal_time_monotonic();
+ // 4294967296 = 2^32
+ return mp_obj_new_float(((uint32_t) (time64 >> 32) * 4294967296.0f + (uint32_t) (time64 & 0xffffffff)) / 1000.0f);
}
MP_DEFINE_CONST_FUN_OBJ_0(time_monotonic_obj, time_monotonic);