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);
}
}
为什么这个简单的代码不起作用,如果 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);
}
}