esp-idf 4.4.4,esp32c3,微秒级延时被系统中断打断,有什么方法禁止中断
时间: 2024-03-09 15:49:54 浏览: 141
中断延时控制
在ESP-IDF中,可以使用 `taskENTER_CRITICAL()` 和 `taskEXIT_CRITICAL()` 函数来禁止和启用中断。这两个函数可以用来保护临界区,确保在临界区内的代码不会被中断打断。你可以在需要禁止中断的地方调用 `taskENTER_CRITICAL()` 函数,然后执行你的微秒级延时,最后再调用 `taskEXIT_CRITICAL()` 函数启用中断。这样就可以避免中断打断你的延时操作了。
示例代码如下:
```
// 禁止中断
taskENTER_CRITICAL();
// 执行延时操作
vTaskDelay(pdMS_TO_TICKS(delay_ms));
// 启用中断
taskEXIT_CRITICAL();
```
注意,禁用中断可能会对系统的稳定性和实时性产生影响,所以建议在必要的情况下才使用。
阅读全文