Innehållsförteckning:
- Steg 1: Vad är denna Watchdog Timer?
- Steg 2: Hur aktiverar jag Watchdog Timer?
- Steg 3: Håll ditt program igång
- Steg 4: Exempel på användning
- Steg 5: Problem med vakthundstimern
- Steg 6: Njut
Video: Arduino Hang Guardian - Arduino Watchdog Timer Handledning: 6 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:41
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?
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?
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
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
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
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:
Raspberry Pi - TMD26721 Infraröd digital närhetsdetektor Java Handledning: 4 steg
Raspberry Pi-TMD26721 Infraröd digital närhetsdetektor Java Tutorial: TMD26721 är en infraröd digital närhetsdetektor som tillhandahåller ett komplett närhetsdetekteringssystem och digital gränssnittslogik i en enda 8-polig ytmonteringsmodul. noggrannhet. Ett proffs
En enkel handledning för CANBUS: 8 steg
En enkel handledning för CANBUS: Jag har studerat CAN i tre veckor och nu har jag slutfört några ansökningar för att validera mina inlärningsresultat. I denna handledning lär du dig hur du använder Arduino för att implementera CANBUS -kommunikation. Om du har några förslag, välkommen att lämna en
LoRa GPS Tracker Handledning - LoRaWAN med Dragino och TTN: 7 steg
LoRa GPS Tracker Handledning | LoRaWAN Med Dragino och TTN: Hej, vad händer, killar! Akarsh här från CETech. Ett par projekt tillbaka tittade vi på LoRaWAN Gateway från Dragino. Vi kopplade olika noder till Gateway och överförde data från noder till Gateway med TheThingsNetwork som s
Tre högtalarkretsar -- Steg-för-steg handledning: 3 steg
Tre högtalarkretsar || Steg-för-steg-handledning: Högtalarkretsen förstärker ljudsignalerna som tas emot från miljön till MIC och skickar den till högtalaren varifrån förstärkt ljud produceras. Här visar jag dig tre olika sätt att göra denna högtalarkrets med:
AVR -mikrokontroller. Lysdioder blinkar med timer. Timers avbryter. Timer CTC -läge: 6 steg
AVR -mikrokontroller. Lysdioder blinkar med timer. Timers avbryter. Timer CTC -läge: Hej alla! Timers är ett viktigt koncept inom elektronik. Varje elektronisk komponent fungerar på en tidsbas. Denna tidsbas hjälper till att hålla allt arbete synkroniserat. Alla mikrokontroller fungerar med någon fördefinierad klockfrekvens,