Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Was ist ein Watchdog-Timer?

Komponenten und Verbrauchsmaterialien

Arduino UNO
× 1

Apps und Onlinedienste

Arduino-IDE

Über dieses Projekt

Was ist die Situation, während Ihr Mikrocontroller in einer Endlosschleife verwirrt ist😖. Gibt es einen Fall, in dem Ihr Mikrocontroller beim Ausführen einer Aufgabe hängen bleibt oder hängen bleibt? Was sind die normalen Methoden zur Fehlerbehebung? Reset-Taste, rechts ? Ist es praktisch möglich, die ganze Zeit auf den Knopf zu drücken? Wie wäre es also mit einem Gerät, das diese Aufgabe erledigt? hört sich gut an. Cool... !🙂.

Ja ! Jetzt diskutieren wir über ein solches Gerät, das bereits auf einem Mikrocontroller enthalten ist. Das ist der Watchdog-Timer.

Watchdog-Timer.

"Ein Watchdog-Timer ( WDT ) ist ein Hardware-Timer, der automatisch einen System-Reset generiert, wenn das Hauptprogramm es versäumt, ihn regelmäßig zu warten. Es wird häufig verwendet, um ein eingebettetes Gerät, das aufgrund eines Software- oder Hardwarefehlers hängen bleibt, automatisch zurückzusetzen. " (os.mbed.com/cookbook/WatchDog-Timer).

Füttere den Hund !

Wenn Sie einen Hund zu Hause haben. Sie müssen diesen Hund in regelmäßigen Abständen füttern. Wenn du eines Tages nicht füttern kannst, wird es dich beißen! So wie dieser Watchdog-Timer funktioniert.

Wir haben einen Hauptteil im Programm, der immer wieder läuft (Schleife ). Wir aktivieren Watchdog-Timer wird mit einem Anfangswert geladen, der größer ist als die Gesamtverzögerung im Hauptprogramm. Jedes Mal, wenn das Hauptprogramm diesen Timer zurücksetzt. Falls das Hauptprogramm den Timer nicht zurücksetzt, bevor er auf null heruntergezählt hat, wird ein Interrupt generiert, um den Prozessor zurückzusetzen. Ebenso schützt ein Watchdog-Timer den Mikrocontroller vor dem Hängenbleiben.

Lassen Sie uns also den Watchdog-Timer in Arduino ausprobieren;)

In Arduino verwendet UNO ATMEGA328P Mikrocontroller.

Watchdog-Timer-Bibliothek

#include  

Bibliothek wird benötigt, um Watchdog-Timer in Arduino zu verwenden

Watchdog-Timer aktivieren:

wdt_enable(WDT Reset Timer);

Um den Watchdog-Timer zu aktivieren, WDT RESET TIMER variiert von 15ms - 8s

Beispiel:wdt_enable(WDT0_8S); --Aktivierter Watchdog-Timer für 8Sekunden

Watchdog-Timer zurücksetzen

wdt_reset();

Diese Funktion dient zum Zurücksetzen des Watchdog-Timers. Reset-Funktion verwendet innerhalb von loop() . Wenn Ihr Programm ein größeres delay() verwendet die größer als die Schwellenverzögerung des Watchdog-Timers ist, fügen Sie auch vor dieser Verzögerung eine Reset-Funktion hinzu. Andernfalls wird der Mikrocontroller zurückgesetzt, bevor diese Aufgabe abgeschlossen wird.

Watchdog-Timer deaktivieren

wdt_disable();

Beispielcode :

#include 
void setup(){
Serial.begin(9600);
Serial.println("Setup gestartet:");
// Verzögern Sie die Aktivierung von WDT
// Diese Verzögerung hilft, alle anfänglichen Aufgaben abzuschließen
delay(2000);
wdt_enable(WDTO_4S);
}
void loop(){
Serial.println("LOOP gestartet ! ");
for(int i=0; i<=5; i++){
Serial.print( "Loop :");
Serial.print(i);
Serial.println();
delay(1000);
wdt_reset();
}
//Unendlichkeitsschleife zum Aufhängen der MCU
while(1){}
}

Ausgabe

Schießen Sie Ihr Feedback, Ihre Fragen und Ihre Diskussion in den Kommentarbereich.

Code

  • Vollständiger Code
Vollständiger CodeArduino
#include void setup () { Serial.begin (9600); Serial.println("Setup gestartet:"); // eine Verzögerung vor dem Aktivieren von WDT machen // diese Verzögerung hilft, alle anfänglichen Tasks abzuschließen delay(2000); wdt_enable (WDTO_4S);}void loop () { Serial.println ( "LOOP gestartet!"); for(int i=0; i<=5; i++) {Serial.print ("Loop:"); Serial.print (i); Serial.println(); Verzögerung (1000); wdt_reset(); } //Unendlichschleife zum Aufhängen der MCU während(1){}}

Herstellungsprozess

  1. Was ist Einsatzformen?
  2. Was ist Prototyping?
  3. Was ist ein Linearmotor?
  4. Was ist CNC-Drehen?
  5. Was ist eine Gießerei?
  6. Was ist eine mehrstufige Pumpe?
  7. Was ist ein Pressefeeder?
  8. Was ist eine Tauchpumpe?
  9. Was ist ein Getränkeroboter?
  10. Was ist eine mechanische Presse?