vTaskDelay(1 / portTICK_PERIOD_MS)
默认设置的是100 Hz
的 Tick rate, 该默认设置最小是10ms
, 如下配置
若 Tick rate 设置为 1000 HZ,这样 tick 就是 1 ms 。此时可以使用 vTaskDelay(1/period_ms) 测试延时 1 ms 。但频率增高的话,中断的 overhead 也会变大。
- 若对功耗或者 CPU 时间要求不是很高的情况下,建议使用 ets_delay_us(1000); 函数来设置
1 ms
的延时。 - 若对精度要求高,建议使用硬件定时器来进行延时,文档说明参见“High Resolution Timer (ESP Timer)” ;对应例程可参考 esp-idf/examples/peripherals/timer_group