工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

ウォッチドッグタイマーとは何ですか?

コンポーネントと消耗品

>
Arduino UNO
× 1

アプリとオンラインサービス

>
Arduino IDE

このプロジェクトについて

マイクロコントローラーが無限ループで混乱しているときの状況😖。タスクの実行中にマイクロコントローラーがハングしたりスタックしたりするようなケースはありますか😖。通常のトラブルシューティング方法は何ですか? リセットボタン、右 ?ボタンを常に押すことは実際に可能ですか?😕。では、このタスクを実行するデバイスはどうですか?いいですね。かっこいい...!🙂。

はい !今、私たちはすでにマイクロコントローラーの中にあるそのようなデバイスについて議論しています。それが ウォッチドッグタイマーです。

ウォッチドッグタイマー。

"ウォッチドッグタイマー( WDT )は、メインプログラムが定期的なサービスを怠った場合に、システムリセットを自動的に生成するハードウェアタイマーです。多くの場合、ソフトウェアまたはハードウェアの障害が原因でハングした組み込みデバイスを自動的にリセットするために使用されます。 "(os.mbed.com/cookbook/WatchDog-Timer)。

犬に餌をやる!

家に犬がいる場合。あなたは定期的にその犬に餌をやる必要があります。あなたが一日を養うことができないならば、それはあなたを噛むでしょう!このウォッチドッグタイマーのように機能します。

<図>

プログラムには、何度も実行される主要な部分があります( loop )。メインプログラムの合計遅延よりも大きい初期値でウォッチドッグタイマーがロードされるようにしています。メインプログラムがこのタイマーをリセットするたびに。いずれの場合も、メインプログラムがゼロにカウントダウンする前にタイマーをリセットするために戻らない場合は、プロセッサをリセットするための割り込みが生成されます。同様に、ウォッチドッグタイマーはマイクロコントローラーをハングケースから保護します。

それでは、 Arduinoでウォッチドッグタイマーを試してみましょう;)

ArduinoではUNOは ATMEGA328P を使用します マイクロコントローラー。

<図>

ウォッチドッグタイマーライブラリ

  #include   

Arduinoでウォッチドッグタイマーを使用するにはライブラリが必要です

ウォッチドッグタイマーを有効にする:

wdt_enable(WDT Reset Timer);

ウォッチドッグタイマーを有効にするには、 WDT RESET TIMER 15msから8sまで変化します

<図>

例: wdt_enable(WDT0_8S); -8秒間ウォッチドッグタイマーを有効にしました

ウォッチドッグタイマーをリセットする

wdt_reset();

この機能は、ウォッチドッグタイマーをリセットするために使用されます。リセット関数は loop()内で使用します 。プログラムでより大きな delay()を使用する場合 ウォッチドッグタイマーのしきい値遅延よりも大きい場合は、その遅延の前にもリセット機能を追加します。それ以外の場合は、そのタスクを完了する前にマイクロコントローラーをリセットします。

ウォッチドッグタイマーの無効化

wdt_disable();

サンプルコード:

  #include  
void setup(){
Serial.begin(9600);
Serial.println( "セットアップ開始:");
// WDTを有効にする前に遅延を作成します
//この遅延は、すべての初期タスクを完了するのに役立ちます
delay(2000);
wdt_enable(WDTO_4S);
}
void loop(){
Serial.println( "LOOP start!");
for(int i =0; i <=5; i ++){
Serial.print( "ループ:");
Serial.print(i);
Serial.println();
delay(1000);
wdt_reset();
}
// MCUをハングアップするための無限ループ
while(1){}
}

出力

<図>

コメントセクションでフィードバック、質問、ディスカッションを撮影してください。

コード

  • 完全なコード
フルコード Arduino
 #include  void setup(){Serial.begin(9600); Serial.println( "セットアップが開始されました:"); // WDTを有効にする前に遅延を作成します//この遅延は、すべての初期タスクを完了するのに役立ちますdelay(2000); wdt_enable(WDTO_4S);} void loop(){Serial.println( "LOOPが開始されました!"); for(int i =0; i <=5; i ++){Serial.print( "Loop:"); Serial.print(i); Serial.println(); delay(1000); wdt_reset(); } // MCUをハングさせる無限ループwhile(1){}} 

製造プロセス

  1. インサート成形とは何ですか?
  2. プロトタイピングとは?
  3. リニアモーターとは
  4. CNC旋削とは?
  5. 鋳造所とは何ですか?
  6. 多段ポンプとは
  7. プレスフィーダーとは
  8. 水中ポンプとは?
  9. 飲料ロボットとは?
  10. メカニカルプレスとは?
  11. サーボモータとは