I wonder about the difference with 1000 and 100. If the value is 1000, it means FreeRTOS the kernel tick is 1000Hz. The time's resolution is 1ms. If the value is 100, it tick is 100HZ, The resolution is 10 ms. I set the value is 100, then use vTaskDelay(6/portTICKPERIODMS). It equals no delay. Because the resolution is 10ms. Is it correct? I want to know how to delay 1ms when I set the value is 100. Is it possbile?
If TICKRATEHZ is 100, and thus TICKPERIODMS is 10, you can not request a delay of 1 ms, as the unit of measure on time is 10ms.
In fact, with a TICHRATEHZ of 1000, and TICKPERIODMS of 1, you can't get an exactly 1ms delay either, as a call to vTaskDelay(1) will block your task till the next tick occurs, which will be AT MOST 1ms, and likely somewhat less. If you need a delay of at least 1ms, you need to call vTaskDelay(2), which will delay at least 1ms, and up to 2ms (or longer if a higher priority task is ready at that point).
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.