diff --git a/subsys/bluetooth/controller/ticker/ticker.c b/subsys/bluetooth/controller/ticker/ticker.c index 895970319d1..b9ebf6fc29a 100644 --- a/subsys/bluetooth/controller/ticker/ticker.c +++ b/subsys/bluetooth/controller/ticker/ticker.c @@ -1112,8 +1112,15 @@ static inline void ticker_job_node_manage(struct ticker_instance *instance, ticker->req = ticker->ack; if (instance->ticker_id_slot_previous == user_op->id) { + u32_t ticks_now = cntr_cnt_get(); + u32_t ticks_used; + instance->ticker_id_slot_previous = TICKER_NULL; - instance->ticks_slot_previous = 0U; + ticks_used = ticks_elapsed + + ticker_ticks_diff_get(ticks_now, + instance->ticks_current); + instance->ticks_slot_previous = MIN(ticker->ticks_slot, + ticks_used); } }