Sisällysluettelo:
- Vaihe 1: Mikä tämä vahtikoira -ajastin on?
- Vaihe 2: Kuinka ottaa vahtikoira -ajastin käyttöön?
- Vaihe 3: Pidä ohjelma käynnissä
- Vaihe 4: Esimerkki käytöstä
- Vaihe 5: Vahtikoira -ajastimen ongelmat
- Vaihe 6: Nauti
Video: Arduino Hang Guardian - Arduino Watchdog Timer -opetusohjelma: 6 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:00
Hei kaikki, Se tapahtuu meille kaikille. Rakennat projektin, liität innokkaasti kaikki anturit, ja yhtäkkiä Arduino jumittuu eikä tuloja käsitellä.
"Mitä tapahtuu?", Kysyt ja alat kaivaa koodiasi läpi vain huomatessasi, että olet juuttunut äärettömään silmukkaan. Luojan kiitos, Arduino oli penkilläsi eikä syrjäisessä paikassa.
Tänään tarkastelemme, kuinka voimme käyttää Arduinon vahtikoira -ajastinta estääksemme tämän tapahtuvan.
Vaihe 1: Mikä tämä vahtikoira -ajastin on?
Arduinon vahtikoira -ajastin, kuten nimestä voi päätellä, on ajastin, joka toimii erillään levyn pääprosessorista. Tätä ajastinta voidaan käyttää ajoittain kortin tilan tarkistamiseen ja tilanteissa, joissa levy juuttui ohjelmistosilmukkaan tai juuttui laitteistovian takia, vahtikoira -ajastin voi nollata Arduinon ja saada sen aloittamaan alusta.
Oletusarvoisesti, kun ajastin ei ole käytössä, tämä ajastin on poistettu käytöstä kaikissa projekteissa ja vain, kun otamme sen käyttöön, meidän on varmistettava säännöllisesti, ettei se nollaa levyämme, jos se toimii edelleen odotetulla tavalla.
Jotta voimme käyttää vahtikoira -ajastinta, meidän on ensin sisällytettävä avr/wdt.h -tiedosto Arduino -luonnokseemme. Tämä on vakiokirjasto, joka pitää vahtikoiran toiminnot.
Vaihe 2: Kuinka ottaa vahtikoira -ajastin käyttöön?
Ajastimen aktivoimiseksi käytämme toimintoa “wdt_enable”, jossa meidän on läpäistävä kynnysväli, jolla levy palautetaan. Käyttötarkoituksestamme riippuen tämä voi kestää 15 millisekuntia-jopa 8 sekuntia vartiointikirjaston ennalta määritetyillä asetuksilla.
THRESHOLD - VAKIO NIMI
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
Vaihe 3: Pidä ohjelma käynnissä
Nyt, kun ajastin on käytössä, meidän on ajoittain kutsuttava wdt_reset -toiminto, jotta ajastin on nollattu Arduino -ohjelmaa varten, ennen kuin kynnysväli päättyy.
Nollausväliä valittaessa on tärkeää ottaa huomioon kaikki pitkät toiminnot, kuten tietojen lukeminen tai lähettäminen tai liittäminen ulkoisiin antureihin. Palautuskynnyksen on oltava vähintään puolitoista kertaa suurempi kuin nämä ajat, jotta vältetään vahingossa tapahtuvat nollaukset.
Vaihe 4: Esimerkki käytöstä
Tässä ladattavassa esimerkkiohjelmassa asetimme ensin vahtikoiran ajastimen, jonka nollausväli on 4 sekuntia. Sitten tietääksemme, että olemme asetustoiminnossa, vilkkumme LED -valoa 3 kertaa nopeasti ja sitten nollaamme ensin ajastimen pääsilmukassa, sytytämme LED -valon asteittain pitemmillä aikaväleillä ja sammutamme sen sitten. Seuraava silmukka nollaa ajastimen uudelleen, kunnes syttymisaika on pidempi kuin 4 sekuntia.
Kun näin tapahtuu, vahtikoira -ajastin nollaa levyn ja asetukset suoritetaan uudelleen.
Vaihe 5: Vahtikoira -ajastimen ongelmat
Yksi mahdollinen vahtikoira -ajastimen ongelma Arduinon käynnistyslataimesta riippuen on, että jos vahtikoira -ajastimen arvo on liian alhainen ja käynnistyslatain ei nollaa ajastinta uuden koodin lataamisen yhteydessä, saatat vahingoittaa Arduino -korttiasi siten, että se on aina jumissa käynnistysvaiheessa. Käynnistyslatain yrittää käynnistyä, mutta ajastin nollaa levyn jatkuvasti eikä anna sen käynnistyä kunnolla. Tämänkaltaisten ongelmien estämiseksi käytä aina vähintään 2 sekunnin kynnysvälejä.
Vaihe 6: Nauti
Jos sinulla on esimerkki siitä, missä olet käyttänyt vahtikoira -ajastinta todellisessa projektissa, kerro siitä minulle kommenteissa, muista tykätä videosta ja muista tilata.
Tsemppiä ja kiitos lukemisesta/katsomisesta!
Suositeltava:
Steampunked Dream Guardian Night Light: 9 vaihetta (kuvilla)
Steampunked Dream Guardian Night Light: Hei kaikki Läheinen ystäväni pyysi minua luomaan kihlauslahjan (tietysti sormuksen lisäksi!) Tyttöystävälleni muutama viikko sitten. Molemmat ovat kuin minä, vapaaehtoiset palomiehet ja rakastavat Steampunk Objectsia. Ystäväni ajatteli st
Theremin: elektroninen Odysseia [on 555 Timer IC] *(Tinkercad): 3 vaihetta
Theremin: Electronic Odyssey [on 555 Timer IC] *(Tinkercad): Tässä kokeessa olen suunnitellut optisen Thereminin käyttämällä 555 Timer IC -laitetta. Tässä näytän sinulle, kuinka luoda musiikkia (lähellä sitä: P) koskettamatta edes soitinta. Pohjimmiltaan tätä instrumenttia kutsutaan nimellä Theremin, alun perin
Eye Guardian: Ääni laukaisee Silmien suojaus: 9 vaihetta (kuvilla)
Eye Guardian: Ääni laukaisee Silmien suojaus: Eye Guardian on Arduinolla toimiva, korkean desibelin jatkuva ääni laukaisee silmiensuojaimen. Se tunnistaa raskaan laitteen äänen ja laskee suojalasit laitteen ollessa käytössä. Pääpiirteet Ensimmäisessä vaiheessa selitän inspiraatiot
Guardian V1.0 --- Oven piilokameran päivittäminen Arduinolla (liiketunnistuksen tallennus ja sähköiskun ominaisuudet): 5 vaihetta
Guardian V1.0 ||| Oven piilokameran päivittäminen Arduinolla (liiketunnistuksen tallennus ja sähköiskuominaisuudet): Olen tilannut piilokameran, mutta kun käytän sitä, huomasin, että automaattista tallennustoimintoa ei ole (aktivoitu liiketunnistuksella). Sitten aloin tutkia, miten se toimii. Jos haluat tallentaa videon, sinun pitäisi 1- pitää virtapainiketta painettuna lähes 2 sekuntia
The Pi Guardian: 6 vaihetta (kuvilla)
Pi Guardian: Oletko koskaan halunnut saada kiinni yhden henkilön, joka varastaa Halloween -karkkisi? Entä se ärsyttävä kämppäkaveri, joka ei jätä jääkaappiasi yksin? Kaikki tämä on nyt mahdollista käyttämällä Raspberry Pi 3-, Pi -kamera- ja PIR -anturia. Yksinkertainen