ESP8266でタイマー割り込み

ESP8266で使用出来るタイマー割り込みはいくつかあるようですがOS経由のタイマー割り込みを試してみました。
最小のコードは以下の通りです。
注意点はタイマー関数中(このコードではtimerCallback())でシリアルを使用してはいけません。
グローバル変数に痕跡を残し、loop()側でハンドリングする方法を取る必要があります。
WiFiで通信中でもちゃんとタイマー割り込みはかかってくれます。

extern "C" {
#include "user_interface.h"
}

os_timer_t myTimerFunc;

void timerCallback(void *pArg) {
// タイマーで実行
}

void setup() {
os_timer_setfn(&myTimerFunc, timerCallback, NULL);
os_timer_arm(&myTimerFunc, 1000, true); // 1000msec毎実行
}

void loop() {
yield();
}

カテゴリー: ESP8266 パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください