ja-jp_commands:reference:itimerstate
差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
| ja-jp_commands:reference:itimerstate [2026/09/07 23:35] – 바깥 편집 127.0.0.1 | ja-jp_commands:reference:itimerstate [2026/09/12 22:55] (現在) – 바깥 편집 127.0.0.1 | ||
|---|---|---|---|
| 行 15: | 行 15: | ||
| ===== 使用例 ===== | ===== 使用例 ===== | ||
| + | |||
| + | 既定のコールバックタイマ(Timer2)を使用します。コールバックではフラグだけを変更し、シリアル出力は'' | ||
| <code cpp> | <code cpp> | ||
| - | const uint8_t CALLBACK_TIMER = 3; | + | void onTimer() {} |
| - | volatile bool sampleDue = false; | + | |
| - | + | ||
| - | void sampleTask() { | + | |
| - | sampleDue = true; | + | |
| - | } | + | |
| void setup() { | void setup() { | ||
| Serial.begin(115200); | Serial.begin(115200); | ||
| - | if (!ItimerSet(CALLBACK_TIMER, 100, sampleTask)) { // | + | if (!ItimerSet(1000, onTimer)) return; |
| - | Serial.println(F(" | + | ItimerStart(); |
| - | return; | + | |
| - | } | + | |
| - | ItimerStart(CALLBACK_TIMER); // 設定したコールバックタイマを開始します。 | + | |
| } | } | ||
| void loop() { | void loop() { | ||
| - | if (sampleDue) { | + | |
| - | | + | static bool stopped = false; |
| - | | + | |
| - | | + | |
| - | | + | |
| + | } | ||
| + | if (millis() - lastPrint >= 1000) { | ||
| + | | ||
| + | | ||
| + | Serial.println(running ? F(" | ||
| } | } | ||
| - | |||
| - | const bool pause = IdigitalRead(0, | ||
| - | if (pause && ItimerState(CALLBACK_TIMER)) ItimerStop(CALLBACK_TIMER); | ||
| - | if (!pause && !ItimerState(CALLBACK_TIMER)) ItimerStart(CALLBACK_TIMER); | ||
| - | if (IdigitalRead(1, | ||
| } | } | ||
| </ | </ | ||
| 行 50: | 行 44: | ||
| ===== 注意事項 ===== | ===== 注意事項 ===== | ||
| - | * タイマ割り込みコールバックはISR内で実行されます。コールバックではフラグだけを変更し、実際の制御処理を'' | + | * コールバックは割り込み内で実行されます。フラグだけを変更し、'' |
| - | * コールバック内で'' | + | * タイマ番号を省略したコールバックタイマはTimer2を使います。同じTimer2を使う'' |
| - | * Modbus RTUは通常'' | + | * 別のハードウェアタイマを指定する場合も、そのタイマを使用するPWM・アナログ出力・高速カウンタ機能との重複を確認してください。 |
| - | * Timer2を使う'' | + | |
| - | * Timer1、Timer3、Timer4、Timer5を明示的に使用すると、同じタイマを使うPWM、アナログ出力、高速カウンタ機能と競合する場合があります。 | + | ===== 同じカテゴリの内蔵コマンド ===== |
| - | * 1つのハードウェアタイマには'' | + | |
| - | * スケッチで同じタイマのISRを直接定義すると、'' | + | * [[: |
| - | * '' | + | * [[: |
| + | * [[: | ||
| + | * [[: | ||
| [[: | [[: | ||
ja-jp_commands/reference/itimerstate.1788791738.txt.gz · 最終更新: by 127.0.0.1
