ItimerState()は既定または指定したコールバックタイマの実行状態を返します。
bool ItimerState()
bool ItimerState(uint8_t timerNumber)
| コマンド | 引数 | 戻り値 | 動作 |
|---|---|---|---|
ItimerState() | なし | bool | 既定または指定したコールバックタイマの実行状態を返します。 |
既定のコールバックタイマ(Timer2)を使用します。コールバックではフラグだけを変更し、シリアル出力はloop()で行います。
void onTimer() {} void setup() { Serial.begin(115200); if (!ItimerSet(1000, onTimer)) return; // 先にコールバックと周期を設定します。 ItimerStart(); // 設定したコールバックタイマを開始します。 } void loop() { static unsigned long lastPrint = 0; static bool stopped = false; if (!stopped && millis() >= 3000) { ItimerStop(); // 5秒後に既定のコールバックタイマを停止します。 stopped = true; } if (millis() - lastPrint >= 1000) { lastPrint = millis(); const bool running = ItimerState(); // 既定のコールバックタイマが実行中か確認します。 Serial.println(running ? F("running") : F("stopped")); } }
delay()・Serial・I2C・SPIを呼び出さないでください。tone()やPWM出力と併用しないでください。