ESP32 xTaskGetTickCount 没有 return 正确的值

ESP32 xTaskGetTickCount doesn't return correct values

为什么这个简单的代码不起作用,如果 xTaskGetTickCount 不起作用,应该用什么替代?

static void PrintTextEvery8sec(void *pvParameters)
{


                TickType_t time_start = xTaskGetTickCount();

                while(1){

                    if( ( (xTaskGetTickCount() - time_start)/portTICK_PERIOD_MS) > 8000){
                        ESP_LOGI(TAG, "8 seconds has passed...!");
                        time_start = xTaskGetTickCount();
                    }

                    vTaskDelay(100 / portTICK_PERIOD_MS);
                }
 }

我通过以下操作解决了这个问题:

static void PrintTextEvery8sec(void *pvParameters)
{


                TickType_t time_start = xTaskGetTickCount();

                while(1){

                    /*  pdTICKS give correct calculation */
                    /*  \/                               */
                    if( pdTICKS_TO_MS(xTaskGetTickCount() - time_start))** > 8000){
                        ESP_LOGI(TAG, "8 seconds has passed...!");
                        time_start = xTaskGetTickCount();
                    }

                    vTaskDelay(100 / portTICK_PERIOD_MS);
                }
 }