ja-jp_commands:reference:itmr
文書の過去の版を表示しています。
Itmr()
Itmr()は(Retentive Timer)条件がONの時間を積算し、Reset入力で初期化します。
bool Itmr(uint8_t timer_id, bool state, unsigned long delayTime, bool reset = false)
コマンド
| コマンド | 引数 | 戻り値 | 動作 |
|---|---|---|---|
Itmr(timer_id, state, delayTime, reset) | uint8_t timer_id — タイマ番号。0 ~ 255の範囲で使用可能bool state — タイマ入力状態unsigned long delayTime — 設定時間。単位はmsbool reset = false — Itmr積算値の初期化 | bool | (Retentive Timer)条件がONの時間を積算し、Reset入力で初期化します。 |
使用例
bool Iton(uint8_t timer_id, bool state, unsigned long delayTime); bool Itof(uint8_t timer_id, bool state, unsigned long delayTime); bool Itpl(uint8_t timer_id, bool state, unsigned long delayTime); bool Itmon(uint8_t timer_id, bool state, unsigned long delayTime); bool Itmr(uint8_t timer_id, bool state, unsigned long delayTime, bool reset = false); unsigned long IgetTime(uint8_t timer_id); bool IgetState(uint8_t timer_id);
注意事項
- タイマ割り込みコールバックはISR内で実行されます。コールバックではフラグだけを変更し、実際の制御処理を
loop()で行うのが安全です。 - コールバック内で
delay()、Serial、I2C、SPIなど時間がかかる処理や割り込みに依存するコードを使用しません。 - Modbus RTUは通常
loop()でImodbusRTU()を繰り返し呼び出します。長いdelay()やデバッグ出力でloop()が遅くなる場合だけ、十分な周期のタイマ割り込みからImodbusRTU()を呼び出します。 - Timer2を使う
tone()、またはTimer2 PWMピンのanalogWrite()と、既定のItimerSet()は同時使用しません。 - Timer1、Timer3、Timer4、Timer5を明示的に使用すると、同じタイマを使うPWM、アナログ出力、高速カウンタ機能と競合する場合があります。
- 1つのハードウェアタイマには
Itimerコールバックを1つだけ設定します。 - スケッチで同じタイマのISRを直接定義すると、
Itimerの動作と競合する場合があります。 ItimerStopAll()はハードウェア割り込みタイマだけを停止します。Iton、Itof、ItmrなどのPLCスタイルタイマの状態は初期化しません。
ja-jp_commands/reference/itmr.1788785591.txt.gz · 最終更新: by 127.0.0.1
