Innehållsförteckning:

Arduino Hang Guardian - Arduino Watchdog Timer Handledning: 6 steg
Arduino Hang Guardian - Arduino Watchdog Timer Handledning: 6 steg

Video: Arduino Hang Guardian - Arduino Watchdog Timer Handledning: 6 steg

Video: Arduino Hang Guardian - Arduino Watchdog Timer Handledning: 6 steg
Video: The Arduino hang guardian - Arduino watchdog timer tutorial 2024, December
Anonim
Image
Image

Hej allihopa, Det händer oss alla. Du bygger ett projekt, ansluter entusiastiskt alla sensorer, och helt plötsligt hänger Arduino och ingen ingång bearbetas.

"Vad händer?", Frågar du och börjar gräva igenom din kod, bara för att inse att du har fastnat i en oändlig loop. Tack och lov var Arduino på din bänk och inte på en avlägsen plats.

Idag ska vi titta på hur vi kan använda vakthundstimern på Arduino för att förhindra att detta händer.

Steg 1: Vad är denna Watchdog Timer?

Hur aktiverar jag Watchdog Timer?
Hur aktiverar jag Watchdog Timer?

Arduino vakthundstimern som namnet antyder är en timer som körs separat från huvudprocessorn på kortet. Denna timer kan användas för att regelbundet kontrollera tillståndet på kortet och under omständigheter där kortet fastnade i en programvaruslinga eller fastnade på grund av maskinvarufel kan vakthundstimern återställa Arduino och få den att börja om igen.

Som standard när timern inte används är den här timern inaktiverad på alla projekt och bara när vi aktiverar den måste vi regelbundet säga till den att den inte ska återställa vår styrelse om den fortfarande fungerar som förväntat.

För att kunna använda vakthundstimern måste vi först inkludera avr/wdt.h -filen i vår Arduino -skiss. Detta är standardbiblioteket som innehåller vakthundens åtgärder.

Steg 2: Hur aktiverar jag Watchdog Timer?

Hur aktiverar jag Watchdog Timer?
Hur aktiverar jag Watchdog Timer?
Hur aktiverar jag Watchdog Timer?
Hur aktiverar jag Watchdog Timer?

För att aktivera timern använder vi funktionen "wdt_enable" där vi måste passera i tröskelintervallet vid vilket kortet kommer att återställas. Beroende på vårt användningsfall kan detta vara allt från 15 millisekunder till upp till 8 sekunder i fördefinierade inställningar som finns i vakthundbiblioteket.

TRESHOLD - KONSTANT NAMN

15 ms WDTO_15MS 30 ms WDTO_30MS 60 ms WDTO_60MS 120 ms WDTO_120MS 250 ms WDTO_250MS 500 ms WDTO_500MS 1s WDTO_1S 2s WDTO_2S 4s WDTO_4S 8s WDTO_8S

Steg 3: Håll ditt program igång

Håll ditt program igång
Håll ditt program igång

Nu, med timern aktiverad, för att förhindra att den återställer vår Arduino måste vi regelbundet ringa funktionen "wdt_reset" för att återställa vakthundstimern innan tröskelintervallet löper ut.

När vi väljer ett återställningsintervall är det avgörande att vi tar hänsyn till alla långvariga operationer som att läsa eller skicka data eller ansluta till externa sensorer. Återställningströskeln bör vara minst en och en halv gånger större än dessa tider för att förhindra oavsiktliga återställningar.

Steg 4: Exempel på användning

Exempel på användning
Exempel på användning
Exempel på användning
Exempel på användning
Exempel på användning
Exempel på användning

I det exempelprogram som du kan ladda ner här ställde vi först in vakthundstimern med ett återställningsintervall på 4 sekunder. För att veta att vi är i installationsfunktionen blinkar vi en lysdiod 3 gånger snabbt och sedan i huvudslingan återställer vi först timern, tänder en lysdiod med successivt längre intervall och sedan stänger vi av den. Nästa slinga återställer timern igen tills tändtiden är längre än 4 sekunder.

När detta händer återställer vakthundstimern kortet och installationen utförs igen.

Steg 5: Problem med vakthundstimern

Ett möjligt problem med vakthundstimern, beroende på startladdaren på din Arduino är att om vakthundens timervärde är för lågt och startladdaren inte återställer timern när du laddar upp ny kod kan du skada ditt Arduino -kort på ett sätt som det kommer alltid att fastna i startfasen. Startladdaren kommer att försöka starta, men timern fortsätter att återställa kortet, så att den aldrig startar ordentligt. För att förhindra problem som detta, se till att alltid använda tröskelintervaller på 2 sekunder eller mer.

Steg 6: Njut

Njut av
Njut av

Om du har ett exempel på var du har använt vakthundstimern i ett riktigt projekt, låt mig veta i kommentarerna, se till att gilla videon och glöm inte att prenumerera.

Skål och tack för att du läser/tittar!

Rekommenderad: