/* \classmethod \constructor(id, ...) Construct a new timer object of the given id. If additional arguments are given, then the timer is initialised by  */
STATIC mp_obj_t pyb_timer_make_new(const mp_obj_type_t *type, size_t n_args, size_t n_kw, const mp_obj_t *args)
/* \classmethod \constructor(id, ...) Construct a new timer object of the given id. If additional arguments are given, then the timer is initialised by  */
STATIC mp_obj_t pyb_timer_make_new(const mp_obj_type_t *type, size_t n_args, size_t n_kw, const mp_obj_t *args)
{
        tim = m_new_obj(pyb_timer_obj_t);
        memset(tim, 0, sizeof(*tim));
        tim->base.type = &pyb_timer_type;
        tim->tim_id = tim_id;
        tim->callback = mp_const_none;
        MP_STATE_PORT(pyb_timer_obj_all)[tim_id - 1] = tim;
    } else {
        tim = MP_STATE_PORT(pyb_timer_obj_all)[tim_id - 1];
    }
    if (n_args > 1 || n_kw > 0) {
        mp_map_t kw_args;
        mp_map_init_fixed_table(&kw_args, n_kw, args + n_args);
        pyb_timer_init_helper(tim, n_args - 1, args + 1, &kw_args);
    }
    return MP_OBJ_FROM_PTR(tim);
}