diff options
Diffstat (limited to 'cc3200/mods/modutime.c')
| -rw-r--r-- | cc3200/mods/modutime.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/cc3200/mods/modutime.c b/cc3200/mods/modutime.c index 05e7b5dca..35ce98acd 100644 --- a/cc3200/mods/modutime.c +++ b/cc3200/mods/modutime.c @@ -32,6 +32,7 @@ #include MICROPY_HAL_H #include "py/nlr.h" #include "py/obj.h" +#include "py/smallint.h" #include "timeutils.h" #include "inc/hw_types.h" #include "inc/hw_ints.h" @@ -152,7 +153,7 @@ STATIC mp_obj_t time_ticks_ms(void) { // We want to "cast" the 32 bit unsigned into a small-int. This means // copying the MSB down 1 bit (extending the sign down), which is // equivalent to just using the MP_OBJ_NEW_SMALL_INT macro. - return MP_OBJ_NEW_SMALL_INT(HAL_GetTick()); + return MP_OBJ_NEW_SMALL_INT(HAL_GetTick() & MP_SMALL_INT_POSITIVE_MASK); } STATIC MP_DEFINE_CONST_FUN_OBJ_0(time_ticks_ms_obj, time_ticks_ms); @@ -160,7 +161,7 @@ STATIC mp_obj_t time_ticks_us(void) { // We want to "cast" the 32 bit unsigned into a small-int. This means // copying the MSB down 1 bit (extending the sign down), which is // equivalent to just using the MP_OBJ_NEW_SMALL_INT macro. - return MP_OBJ_NEW_SMALL_INT(sys_tick_get_microseconds()); + return MP_OBJ_NEW_SMALL_INT(sys_tick_get_microseconds() & MP_SMALL_INT_POSITIVE_MASK); } STATIC MP_DEFINE_CONST_FUN_OBJ_0(time_ticks_us_obj, time_ticks_us); @@ -168,7 +169,7 @@ STATIC mp_obj_t time_ticks_cpu(void) { // We want to "cast" the 32 bit unsigned into a small-int. This means // copying the MSB down 1 bit (extending the sign down), which is // equivalent to just using the MP_OBJ_NEW_SMALL_INT macro. - return MP_OBJ_NEW_SMALL_INT(SysTickValueGet()); + return MP_OBJ_NEW_SMALL_INT(SysTickValueGet() & MP_SMALL_INT_POSITIVE_MASK); } STATIC MP_DEFINE_CONST_FUN_OBJ_0(time_ticks_cpu_obj, time_ticks_cpu); @@ -178,7 +179,7 @@ STATIC mp_obj_t time_ticks_diff(mp_obj_t t0, mp_obj_t t1) { // equivalent to just using the MP_OBJ_NEW_SMALL_INT macro. uint32_t start = mp_obj_get_int(t0); uint32_t end = mp_obj_get_int(t1); - return MP_OBJ_NEW_SMALL_INT((end > start) ? (end - start) : (start - end)); + return MP_OBJ_NEW_SMALL_INT((end - start) & MP_SMALL_INT_POSITIVE_MASK); } STATIC MP_DEFINE_CONST_FUN_OBJ_2(time_ticks_diff_obj, time_ticks_diff); |
