FreeRTOS TICK TIME Value

One thing to note is that as the tick frequency increases the proportion of time which is spent on the tick interrupt handler increases. This isn’t to say that the tick interrupt takes longer, rather that the tasks which are being swapping in an out are being switched after less time/fewer cycles executing.

If you are set on using the tick for timing, I’d suggest using the largest value you can tolerate for your timing needs. You mentioned a 500us timing need - your application might work out okay with a 500us tick period. Testing would let you know more. For a non-blocking wait, you’ll want to use the xTaskGetTickCount. I would generally avoid creating a NON-BLOCKING wait though as one of the major points of an RTOS is to schedule around tasks which cannot execute (due to priority, blocking, etc).

If you’re open to not using the FreeRTOS tick for a non-blocking wait, richard-damon’s solution sounds like a winner.