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