ESP32 xTaskGetTickCount не возвращает правильные значения - PullRequest
0 голосов
/ 19 июня 2020

почему этот простой код не работает, и если 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);
                }
 }

1 Ответ

0 голосов
/ 23 июня 2020

Я решил это следующим образом:

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);
                }
 }
...