Back to tech

ESP32でTimer割り込み

1 min read

最近ESP32を使用しています

理由としてはESP32でBLE通信をしたいためです

その前に、ESP32でTImer割り込みはどうすればいいんだ?ということで色々と調べたときになかなか参考がでてこない!

サンプルプログラムはあるのですが、わかりにくいということで自分なりにESP32についてのTimer割り込み方法についてまとめてました

今回はスイッチサイエンスから発売してあるESP32開発ボードで試していました

また、ESP32をArduino化して使用しています

Arduino化については以下のURLを参照してください

ESP32で遊んでみる | Autumn-Color.com/ちょっとそこまで旅をします。
autumn-color.com
image

とりあえず先にソースコードを掲載します

ESP32はTimer割り込みをするときにセマフォ管理をしなければなりません

またプリスケーラの設定も必要です

timerAttachInterrupt()にてタイムアウトしたときに呼ばれる関数を定義しています

timerAlarmWrite()にてタイマーの設定をしています

上記のプログラムは1秒毎にonTimerを呼び出しています

timerAlarmEnable()にてタイマーをスタートさせています

より深く知りたい人はexampleを参考にしてみてください

スケッチの例 -> ESP32 -> Timer -> RepeatTimer です

ESP32のサンプルファイルにBLE通信をするサンプルファイルがありますが、void loop()で値を更新するものでした

TImerで値更新ができれば高度なものができそうです