Sisällysluettelo:

Arduino Hang Guardian - Arduino Watchdog Timer -opetusohjelma: 6 vaihetta
Arduino Hang Guardian - Arduino Watchdog Timer -opetusohjelma: 6 vaihetta

Video: Arduino Hang Guardian - Arduino Watchdog Timer -opetusohjelma: 6 vaihetta

Video: Arduino Hang Guardian - Arduino Watchdog Timer -opetusohjelma: 6 vaihetta
Video: Arduino watchdog timer Demo 2024, Marraskuu
Anonim
Image
Image

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?

Kuinka ottaa vahtikoira -ajastin käyttöön?
Kuinka ottaa vahtikoira -ajastin käyttöön?

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?

Kuinka ottaa vahtikoira -ajastin käyttöön?
Kuinka ottaa vahtikoira -ajastin käyttöön?
Kuinka ottaa vahtikoira -ajastin käyttöön?
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ä

Pidä ohjelmasi käynnissä
Pidä ohjelmasi 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ä

Esimerkki Käyttö
Esimerkki Käyttö
Esimerkki Käyttö
Esimerkki Käyttö
Esimerkki Käyttö
Esimerkki Käyttö

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

Nauttia
Nauttia

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: