Tartalomjegyzék:
- 1. lépés: Mi ez a Watchdog Timer?
- 2. lépés: Hogyan engedélyezhető a Watchdog Timer?
- 3. lépés: Folytassa a program futását
- 4. lépés: Példa használat
- 5. lépés: A Watchdog Timer kérdései
- 6. lépés: Élvezze
Videó: Az Arduino Hang Guardian - Arduino Watchdog Timer bemutató: 6 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:40
Sziasztok, Mindannyiunkkal előfordul. Felépít egy projektet, lelkesen csatlakoztatja az összes érzékelőt, és hirtelen az Arduino lefagy, és a bemenet nem kerül feldolgozásra.
„Mi folyik itt?”, Megkérdezi, és elkezdi ásni a kódot, hogy rájöjjön, hogy elakadt egy végtelen ciklusban. Hála Istennek, az Arduino a padján volt, és nem egy távoli helyen.
Ma megvizsgáljuk, hogyan használhatjuk az Arduino őrségi időzítőjét ennek megakadályozására.
1. lépés: Mi ez a Watchdog Timer?
Az Arduino watchdog időzítője, ahogy a neve is sugallja, egy időzítő, amely a táblán lévő fő CPU -tól elkülönítve fut. Ezzel az időzítővel rendszeresen ellenőrizhető a tábla állapota, és olyan körülmények között, amikor a tábla beszorult egy szoftverhurokba, vagy elakadt a hardver meghibásodása miatt, a figyelő időzítő visszaállíthatja az Arduino -t, és elölről kezdheti.
Alapértelmezés szerint, amikor nincs használatban, ez az időzítő minden projekten le van tiltva, és csak akkor, ha engedélyezzük, rendszeresen közölnünk kell vele, hogy ne állítsa alaphelyzetbe a táblát, ha továbbra is a várt módon működik.
A watchdog időzítő használatához először be kell vonnunk az avr/wdt.h fájlt az Arduino vázlatunkba. Ez a szabványos könyvtár, amely a felügyeleti műveleteket tartalmazza.
2. lépés: Hogyan engedélyezhető a Watchdog Timer?
Az időzítő engedélyezéséhez a „wdt_enable” funkciót használjuk, ahol át kell lépnünk azon a küszöbintervallumon, amelyen a kártya alaphelyzetbe áll. Használati esettől függően ez 15 milliszekundumtól 8 másodpercig terjedhet az előre meghatározott beállításokban, amelyek a watchdog könyvtárban találhatók.
THRESHOLD - Állandó név
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
3. lépés: Folytassa a program futását
Most, amikor az időzítő engedélyezve van, hogy megakadályozzuk az Arduino alaphelyzetbe állítását, időnként meg kell hívnunk a „wdt_reset” funkciót, hogy visszaállítsuk az őrszem időzítőjét a küszöbérték lejárta előtt.
A visszaállítási intervallum kiválasztásakor elengedhetetlen, hogy figyelembe vegyünk minden olyan hosszadalmas műveletet, mint az adatok olvasása vagy küldése, vagy külső érzékelőkhöz való csatlakozás. A visszaállítási küszöbértéknek legalább másfélszer nagyobbnak kell lennie, mint ezek az idők, hogy elkerüljék a véletlen visszaállításokat.
4. lépés: Példa használat
Az itt letölthető példaprogramban először állítottuk be a watchdog időzítőt 4 másodperces visszaállítási időközönként. Aztán, hogy tudjuk, hogy a beállítási funkcióban vagyunk, háromszor gyorsan felvillanunk egy LED -et, majd a fő hurokban először visszaállítjuk az időzítőt, fokozatosan hosszabb időközönként világítunk egy LED -et, majd kikapcsoljuk. A következő ciklus ismét alaphelyzetbe állítja az időzítőt, amíg a világítási idő meg nem haladja a 4 másodpercet.
Amikor ez megtörténik, a watchdog időzítő alaphelyzetbe állítja a táblát, és a beállítás újra végrehajtódik.
5. lépés: A Watchdog Timer kérdései
Az egyik lehetséges probléma a watchdog időzítővel az Arduino rendszerbetöltőjétől függően az, hogy ha a watchdog időzítő értéke túl alacsony, és a rendszerbetöltő nem állítja vissza az időzítőt az új kód feltöltésekor, akkor az Arduino kártya károsodását okozhatja. mindig a rendszerindítási fázisban ragad. A rendszerbetöltő megpróbál elindulni, de az időzítő folyamatosan visszaállítja a táblát, és soha nem teszi lehetővé a megfelelő indítást. Az ilyen problémák elkerülése érdekében ügyeljen arra, hogy mindig 2 másodperces vagy annál hosszabb küszöbintervallumokat használjon.
6. lépés: Élvezze
Ha van egy példája arra, hogy hol használta a watchdog időzítőt egy valódi projektben, akkor ossza meg velem a megjegyzésekben, győződjön meg róla, hogy tetszik a videó, és ne felejtse el feliratkozni.
Gratulálok és köszönöm, hogy olvastad/nézted!
Ajánlott:
AVR összeszerelő bemutató 2: 4 lépés
AVR Assembler 2. bemutató: Ez az oktatóanyag az "AVR Assembler Tutorial 1" folytatása. Ha még nem ment át az 1. oktatóanyagon, akkor most hagyja abba, és először tegye meg ezt. Ebben az oktatóanyagban folytatjuk az atmega328p u összeszerelési nyelv programozásának tanulmányozását
AVR összeszerelő bemutató 1: 5 lépés
AVR Assembler Tutorial 1: Úgy döntöttem, hogy írok egy sor oktatóanyagot arról, hogyan kell összeállítani a Nyelv programokat az Atmega328p -hez, amely az Arduino -ban használt mikrokontroller. Ha az emberek továbbra is érdeklődnek, továbbra is hetente fogok egyet, amíg el nem fogy
AVR Assembler bemutató 6: 3 lépés
AVR Assembler 6. bemutató: Üdvözöljük a 6. bemutatóban! A mai bemutató rövid lesz, ahol egy egyszerű módszert fogunk kifejleszteni az adatok közlésére az egyik atmega328p és a másik között, két port segítségével. Ezután vesszük a kockadobót a 4. oktatóanyagból és a nyilvántartásból
AVR összeszerelő bemutató 8: 4 lépés
AVR Assembler Tutorial 8: Üdvözöljük a 8. tutorialban! Ebben a rövid bemutatóban egy kicsit eltérünk az összeszerelési nyelv programozásának új aspektusainak bevezetésétől, hogy megmutassuk, hogyan lehet prototípus -összetevőinket külön " nyomtatott " áramköri. Az
AVR összeszerelő bemutató 7: 12 lépés
AVR Assembler Tutorial 7: Üdvözöljük a 7. bemutatóban! Ma először megmutatjuk, hogyan kell eltávolítani a billentyűzetet, majd megmutatjuk, hogyan kell használni az analóg bemeneti portokat a billentyűzettel való kommunikációhoz. Ezt megszakításokkal és egyetlen vezetékkel végezzük bemenet. Bekötjük a billentyűzetet, hogy