Change configTICK_RATE_HZ in real-time

simointe wrote on Monday, October 31, 2016:

(TMS570LC4)
Is there a way to change at run-time the rtos tick ? I know of course you can change a task frequency, but I have a high frequency application which requires also to sweep a frequency. In order to have more precision between steps, without at compile time increase the configTICK_RATE_HZ too much.

edwards3 wrote on Monday, October 31, 2016:

No dynamic tick frequency changing really because blocked tasks have a stored wake time, and changing the time base will result in them waking at the wrong time, but you can do tricks like halve the tick frequency then call the RTOS increment tick function twice per tick.

simointe wrote on Tuesday, November 01, 2016:

Thanks.
« then call the RTOS increment tick function twice per tick…»
Do you talk about the vTaskStepTick( TickType_t xTicksToJump ) function or another api call ?

rtel wrote on Tuesday, November 01, 2016:

The function that increments the tick is called xTaskIncrementTick (). The step tick function you refer to is only used in tickless idle mode.