rikoubou.hatenablog.com
↑以前ESP32で赤外線の送受信を行うプログラムを紹介しました。
このプログラムの中で「ESP32にdelayMicrosecondsがない」としてシステム時間の計算をして擬似的にμsのdelayを行なっていました。しかし最近色々調べてみると、実はESP32にもμs単位でのdelayを行う関数が存在していることを発見したので記録しておこうと思った次第です。
・マルチタスク中でμs単位でdelayをかける関数
結論から言うと、以下の関数でできます。
ets_delay_us(9); // 9μsだけdelay
Arduino IDEでESP32を使えるようにした時に入れたツールの「ets_sys.h」というファイルの中で宣言されている関数です。実際に使う場合は「ets_sys.h」をincludeしなくてもただ記述するだけで使用できます。
以上が今回発見したことになります。もっと早くこの関数に気づいていれば、赤外線のところで悩まなかったですね……。
・参考資料
GitHub - espressif/arduino-esp32: Arduino core for the ESP32