ItimerSet()は周期とコールバック関数、または使用するハードウェアタイマを設定します。
bool ItimerSet(unsigned long intervalMs, void (*callback)())
bool ItimerSet(uint8_t timerNumber, unsigned long intervalMs, void (*callback)())
| コマンド | 引数 | 戻り値 | 動作 |
|---|---|---|---|
ItimerSet(intervalMs, callback) | unsigned long intervalMs — コールバック実行周期。単位はms。0は使用不可void (*callback)() — 周期ごとに実行するvoid 関数名()形式の関数 | bool | 周期とコールバック関数、または使用するハードウェアタイマを設定します。 |
既定のコールバックタイマ(Timer2)を使用します。コールバックではフラグだけを変更し、シリアル出力はloop()で行います。
volatile bool tick = false; void onTimer() { tick = true; } void setup() { Serial.begin(115200); if (!ItimerSet(1000, onTimer)) return; // 既定のハードウェアタイマに1秒周期のコールバックを設定します。 ItimerStart(); // 設定したコールバックタイマを開始します。 } void loop() { if (tick) { noInterrupts(); tick = false; interrupts(); Serial.println(F("tick")); } }
delay()・Serial・I2C・SPIを呼び出さないでください。tone()やPWM出力と併用しないでください。