====== ItimerState() ====== ''ItimerState()''は既定または指定したコールバックタイマの実行状態を返します。 {{:ja-jp_commands:reference:itimerstate.svg?900|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を呼び出さないでください。 * タイマ番号を省略したコールバックタイマはTimer2を使います。同じTimer2を使う''tone()''やPWM出力と併用しないでください。 * 別のハードウェアタイマを指定する場合も、そのタイマを使用するPWM・アナログ出力・高速カウンタ機能との重複を確認してください。 ===== 同じカテゴリの内蔵コマンド ===== * [[:ja-jp_commands:reference:itimerset|ItimerSet() 詳細説明を見る]] * [[:ja-jp_commands:reference:itimerstart|ItimerStart() 詳細説明を見る]] * [[:ja-jp_commands:reference:itimerstop|ItimerStop() 詳細説明を見る]] * [[:ja-jp_commands:reference:itimerstopall|ItimerStopAll() 詳細説明を見る]] [[:ja-jp_commands:builtin|← 内蔵コマンド一覧]]