Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Wat is Watchdog Timer ?

Componenten en benodigdheden

Arduino UNO
× 1

Apps en online services

Arduino IDE

Over dit project

Wat is de situatie terwijl je microcontroller in een oneindige lus verward. Is er een geval zoals het vastlopen of vastlopen van uw microcontroller tijdens het uitvoeren van een taak? Wat zijn de normale methoden voor het oplossen van problemen? Reset-knop, rechts ? Is het praktisch mogelijk om altijd op de knop te drukken? Dus, hoe zit het met een apparaat om deze taak uit te voeren? klinkt goed. Cool... !🙂.

Ja ! Nu hebben we het over zo'n apparaat dat al op een microcontroller zit. Dat is Watchdog-timer.

Waakhond Timer.

"Een waakhond-timer ( WDT ) is een hardwaretimer die automatisch een systeemreset genereert als het hoofdprogramma deze periodiek niet onderhoudt. Het wordt vaak gebruikt om een ​​ingebouwd apparaat dat vastloopt, automatisch te resetten vanwege een software- of hardwarefout. " (os.mbed.com/cookbook/WatchDog-Timer).

Voer de hond!

Als je een hond in huis hebt. Je moet die hond regelmatig voeren. als je op een dag niet kunt eten, zal het je bijten! Zoals deze watchdog-timer werkt.

We hebben een hoofdgedeelte in het programma dat keer op keer loopt(loop ). We schakelen de watchdog-timer in die wordt geladen met een beginwaarde die groter is dan de totale vertraging in het hoofdprogramma. Elke keer dat het hoofdprogramma deze timer reset. Als het hoofdprogramma niet terugkomt om de timer te resetten voordat deze tot nul is afgeteld, wordt er een interrupt gegenereerd om de processor te resetten. Evenzo beschermt de watchdog-timer de microcontroller tegen een hangcase.

Laten we dus watchdog-timer proberen in Arduino;)

In Arduino gebruikt UNO ATMEGA328P microcontroller.

Watchdog-timerbibliotheek

#include  

Bibliotheek is nodig om watchdog-timer in Arduino te gebruiken

Waakhond-timer inschakelen:

wdt_enable(WDT Reset Timer);

Om de watchdog-timer in te schakelen, WDT RESET TIMER varieert van 15ms - 8s

Bijv.:wdt_enable(WDT0_8S); --Wachthond-timer ingeschakeld voor 8 seconden

Waakhondtimer resetten

wdt_reset();

Deze functie wordt gebruikt voor het resetten van de watchdog-timer. Reset-functie gebruikt binnen loop() . Als uw programma een grotere delay() . gebruikt die groter is dan de drempelvertraging van de watchdog-timer, voeg ook een resetfunctie toe voor die vertraging. Anders wordt de microcontroller gereset voordat die taak wordt voltooid.

Watchdog-timer uitschakelen

wdt_disable();

Voorbeeldcode:

#include 
void setup(){
Serial.begin(9600);
Serial.println("Setup gestart :");
// maak een vertraging voordat u WDT inschakelt
// deze vertraging helpt om alle initiële taken te voltooien
delay(2000);
wdt_enable(WDTO_4S);
}
void loop(){
Serial.println("LOOP gestart ! ");
for(int i=0; i<=5; i++){
Serial.print( "Loop :");
Serial.print(i);
Serial.println();
delay(1000);
wdt_reset();
}
//infinity loop om MCU op te hangen
terwijl(1){}
}

Uitvoer

Schiet uw feedback, vragen, discussie in de commentaarsectie.

Code

  • Volledige code
Volledige codeArduino
#include void setup(){ Serial.begin(9600); Serial.println("Setup gestart:"); // maak een vertraging voordat WDT wordt ingeschakeld // deze vertraging helpt bij het voltooien van alle initiële taken vertraging (2000); wdt_enable(WDTO_4S);}void loop(){ Serial.println("LOOP gestart! "); for(int i=0; i<=5; i++){ Serial.print("Loop:"); Serial.print(i); Serieel.println(); vertraging (1000); wdt_reset(); } // oneindige lus om MCU op te hangen terwijl(1){}}

Productieproces

  1. Wat is insert Moulding?
  2. Wat is prototypen?
  3. Wat is een lineaire motor?
  4. Wat is CNC draaien?
  5. Wat is een gieterij?
  6. Wat is een meertrapspomp?
  7. Wat is een persfeeder?
  8. Wat is een dompelpomp?
  9. Wat is een drankrobot?
  10. Wat is een mechanische pers?
  11. Wat is een servomotor?