diff --git a/extmod/utime_mphal.c b/extmod/utime_mphal.c index 3ecdc94469..4a03bf94b1 100644 --- a/extmod/utime_mphal.c +++ b/extmod/utime_mphal.c @@ -78,11 +78,11 @@ STATIC mp_obj_t time_ticks_cpu(void) { } MP_DEFINE_CONST_FUN_OBJ_0(mp_utime_ticks_cpu_obj, time_ticks_cpu); -STATIC mp_obj_t time_ticks_diff(mp_obj_t start_in, mp_obj_t end_in) { +STATIC mp_obj_t time_ticks_diff(mp_obj_t end_in, mp_obj_t start_in) { // we assume that the arguments come from ticks_xx so are small ints uint32_t start = MP_OBJ_SMALL_INT_VALUE(start_in); uint32_t end = MP_OBJ_SMALL_INT_VALUE(end_in); - return MP_OBJ_NEW_SMALL_INT((end - start) & MP_SMALL_INT_POSITIVE_MASK); + return MP_OBJ_NEW_SMALL_INT((int32_t)(end - start)); } MP_DEFINE_CONST_FUN_OBJ_2(mp_utime_ticks_diff_obj, time_ticks_diff);