extmod/utime_mphal: Allow ticks functions period be configurable by a port.
Using MICROPY_PY_UTIME_TICKS_PERIOD config var.
This commit is contained in:
parent
1ba4db5685
commit
76146b3d9a
@ -71,17 +71,17 @@ STATIC mp_obj_t time_sleep_us(mp_obj_t arg) {
|
||||
MP_DEFINE_CONST_FUN_OBJ_1(mp_utime_sleep_us_obj, time_sleep_us);
|
||||
|
||||
STATIC mp_obj_t time_ticks_ms(void) {
|
||||
return MP_OBJ_NEW_SMALL_INT(mp_hal_ticks_ms() & MP_SMALL_INT_POSITIVE_MASK);
|
||||
return MP_OBJ_NEW_SMALL_INT(mp_hal_ticks_ms() & (MICROPY_PY_UTIME_TICKS_PERIOD - 1));
|
||||
}
|
||||
MP_DEFINE_CONST_FUN_OBJ_0(mp_utime_ticks_ms_obj, time_ticks_ms);
|
||||
|
||||
STATIC mp_obj_t time_ticks_us(void) {
|
||||
return MP_OBJ_NEW_SMALL_INT(mp_hal_ticks_us() & MP_SMALL_INT_POSITIVE_MASK);
|
||||
return MP_OBJ_NEW_SMALL_INT(mp_hal_ticks_us() & (MICROPY_PY_UTIME_TICKS_PERIOD - 1));
|
||||
}
|
||||
MP_DEFINE_CONST_FUN_OBJ_0(mp_utime_ticks_us_obj, time_ticks_us);
|
||||
|
||||
STATIC mp_obj_t time_ticks_cpu(void) {
|
||||
return MP_OBJ_NEW_SMALL_INT(mp_hal_ticks_cpu() & MP_SMALL_INT_POSITIVE_MASK);
|
||||
return MP_OBJ_NEW_SMALL_INT(mp_hal_ticks_cpu() & (MICROPY_PY_UTIME_TICKS_PERIOD - 1));
|
||||
}
|
||||
MP_DEFINE_CONST_FUN_OBJ_0(mp_utime_ticks_cpu_obj, time_ticks_cpu);
|
||||
|
||||
@ -97,7 +97,7 @@ STATIC mp_obj_t time_ticks_add(mp_obj_t ticks_in, mp_obj_t delta_in) {
|
||||
// we assume that first argument come from ticks_xx so is small int
|
||||
uint32_t ticks = MP_OBJ_SMALL_INT_VALUE(ticks_in);
|
||||
uint32_t delta = (uint32_t)mp_obj_get_int(delta_in);
|
||||
return MP_OBJ_NEW_SMALL_INT((ticks + delta) & MP_SMALL_INT_POSITIVE_MASK);
|
||||
return MP_OBJ_NEW_SMALL_INT((ticks + delta) & (MICROPY_PY_UTIME_TICKS_PERIOD - 1));
|
||||
}
|
||||
MP_DEFINE_CONST_FUN_OBJ_2(mp_utime_ticks_add_obj, time_ticks_add);
|
||||
|
||||
|
@ -866,6 +866,16 @@ typedef double mp_float_t;
|
||||
#define MICROPY_PY_UTIME_MP_HAL (0)
|
||||
#endif
|
||||
|
||||
// Period of values returned by utime.ticks_ms(), ticks_us(), ticks_cpu()
|
||||
// functions. Should be power of two. All functions above use the same
|
||||
// period, so if underlying hardware/API has different periods, the
|
||||
// minimum of them should be used. The value below is the maximum value
|
||||
// this parameter can take (corresponding to 30 bit tick values on 32-bit
|
||||
// system).
|
||||
#ifndef MICROPY_PY_UTIME_TICKS_PERIOD
|
||||
#define MICROPY_PY_UTIME_TICKS_PERIOD (MP_SMALL_INT_POSITIVE_MASK + 1)
|
||||
#endif
|
||||
|
||||
// Whether to provide "_thread" module
|
||||
#ifndef MICROPY_PY_THREAD
|
||||
#define MICROPY_PY_THREAD (0)
|
||||
|
Loading…
x
Reference in New Issue
Block a user