Turinys:
- 1 žingsnis: kas yra šis sargybos laikmatis?
- 2 veiksmas: kaip įjungti sargybos laikmatį?
- 3 žingsnis: tęskite savo programos veikimą
- 4 veiksmas: naudojimo pavyzdys
- 5 veiksmas: sargybos laikmačio problemos
- 6 žingsnis: mėgaukitės
Video: „Arduino Hang Guardian“- „Arduino Watchdog Timer“vadovėlis: 6 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:45
Sveiki visi, Tai atsitinka mums visiems. Kuriate projektą, entuziastingai jungiate visus jutiklius, ir staiga „Arduino“kabo ir jokia informacija nėra apdorojama.
"Kas vyksta?", Paklausite ir pradėsite ieškoti savo kodo, kad suprastumėte, jog esate įstrigę begalinėje kilpoje. Ačiū Dievui, „Arduino“buvo jūsų suole, o ne atokioje vietoje.
Šiandien apžvelgsime, kaip galime naudoti „Arduino“stebėtojo laikmatį, kad taip neatsitiktų.
1 žingsnis: kas yra šis sargybos laikmatis?
Kaip rodo pavadinimas, „Arduino“stebėtojų laikmatis yra laikmatis, veikiantis atskirai nuo pagrindinio plokštės procesoriaus. Šis laikmatis gali būti naudojamas periodiškai patikrinti plokštės būseną ir esant aplinkybėms, kai plokštė įstrigo programinės įrangos cikle arba įstrigo dėl aparatinės įrangos gedimo, laikrodžio laikmatis gali iš naujo nustatyti „Arduino“ir pradėti jį iš naujo.
Pagal numatytuosius nustatymus, kai šis laikmatis nenaudojamas, jis yra išjungtas visuose projektuose ir tik tada, kai jį įjungiame, turime periodiškai pasakyti, kad jis nenustatytų lentos, jei ji vis dar veikia taip, kaip tikėtasi.
Kad galėtume naudoti budėtojo laikmatį, pirmiausia turime įtraukti avr/wdt.h failą į savo „Arduino“eskizą. Tai standartinė biblioteka, kurioje saugomi stebėtojo veiksmai.
2 veiksmas: kaip įjungti sargybos laikmatį?
Norėdami įjungti laikmatį, mes naudojame funkciją „wdt_enable“, kur turime pereiti slenksčio intervalą, kuriuo plokštė bus iš naujo nustatyta. Priklausomai nuo mūsų naudojimo atvejo, tai gali trukti nuo 15 milisekundžių iki 8 sekundžių pagal iš anksto nustatytus nustatymus, kurie yra stebėtojų bibliotekoje.
THRESHOLD - NUOLATINIS PAVADINIMAS
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 žingsnis: tęskite savo programos veikimą
Dabar, kai įjungtas laikmatis, kad jis negalėtų iš naujo nustatyti „Arduino“, turime periodiškai iškviesti funkciją „wdt_reset“, kad iš naujo nustatytume laikrodžio laikmatį, kol pasibaigs slenksčio intervalas.
Renkantis atstatymo intervalą, labai svarbu atsižvelgti į bet kokias ilgas operacijas, tokias kaip duomenų skaitymas ar siuntimas arba prijungimas prie išorinių jutiklių. Iš naujo nustatymo slenkstis turėtų būti bent pusantro karto didesnis nei šis laikas, kad būtų išvengta atsitiktinio atstatymo.
4 veiksmas: naudojimo pavyzdys
Pavyzdinėje programoje, kurią galite atsisiųsti čia, pirmiausia nustatėme stebėtojo laikmatį, kurio atkūrimo intervalas yra 4 sekundės. Tada, norėdami sužinoti, kad mes atliekame sąrankos funkciją, 3 kartus greitai sumirksime šviesos diodą, o tada pagrindinėje kilpoje iš pradžių iš naujo nustatome laikmatį, užsidega šviesos diodas su palaipsniui ilgesniais intervalais ir tada jį išjungiame. Kitas ciklas iš naujo nustato laikmatį, kol užsidegimo laikas bus ilgesnis nei 4 sekundės.
Kai tai atsitiks, sargybos laikmatis iš naujo nustatys plokštę ir sąranka bus vykdoma iš naujo.
5 veiksmas: sargybos laikmačio problemos
Viena iš galimų problemų, susijusių su laikrodžio laikmačiu, atsižvelgiant į jūsų „Arduino“įkrovos įkroviklį, yra ta, kad jei stebėtojo laikmačio vertė yra per maža ir įkrovos įkėlimo programa nenustato laikmačio įkeliant naują kodą, galite sugadinti „Arduino“plokštę taip, kad jis visada bus įstrigęs įkrovos fazėje. Įkrovos įkėlimo programa bandys paleisti, tačiau laikmatis nuolat iš naujo nustatys plokštę, neleisdamas jai tinkamai paleisti. Kad išvengtumėte tokių problemų, būtinai visada naudokite 2 ar daugiau sekundžių intervalus.
6 žingsnis: mėgaukitės
Jei turite pavyzdį, kur naudojote stebėtojo laikmatį realiame projekte, praneškite man komentaruose, įsitikinkite, kad jums patinka vaizdo įrašas ir nepamirškite prenumeruoti.
Sveikinimai ir ačiū, kad skaitote/žiūrite!
Rekomenduojamas:
Raspberry Pi - ADXL345 3 ašių akselerometro „Python“vadovėlis: 4 žingsniai
„Raspberry Pi“-ADXL345 3 ašių akselerometro „Python“vadovėlis: „ADXL345“yra mažas, plonas, itin mažos galios 3 ašių akselerometras, turintis didelės skiriamosios gebos (13 bitų) matavimą iki ± 16 g. Skaitmeniniai išvesties duomenys yra suformatuoti kaip 16 bitų du papildymai ir yra prieinami per I2 C skaitmeninę sąsają. Tai matuoja
Raspberry Pi MMA8452Q 3 ašių 12 bitų/8 bitų skaitmeninio akselerometro „Python“vadovėlis: 4 žingsniai
„Raspberry Pi MMA8452Q“3 ašių 12 bitų/8 bitų skaitmeninio akselerometro „Python“vadovėlis: „MMA8452Q“yra protingas, mažos galios, trijų ašių, talpinis, mikromechaninis pagreičio matuoklis, turintis 12 bitų skiriamąją gebą. Lanksčios vartotojo programuojamos parinktys pateikiamos naudojant pagreičio matuoklio įterptas funkcijas, kurias galima sukonfigūruoti dviem pertraukomis
„Raspberry Pi“- „HIH6130 I2C“drėgmės ir temperatūros jutiklio „Python“vadovėlis: 4 žingsniai
„Raspberry Pi“- HIH6130 I2C drėgmės ir temperatūros jutiklis „Python“mokymo programa: HIH6130 yra drėgmės ir temperatūros jutiklis su skaitmenine išvestimi. Šie jutikliai užtikrina ± 4% RH tikslumo lygį. Su pirmaujančiu ilgalaikiu stabilumu pramonėje, tikru temperatūros kompensuojamu skaitmeniniu I2C, patikimumu pramonėje, energijos vartojimo efektyvumu
„Kraken Jr.“daiktų interneto programos vadovėlis 1 dalis. Registracija ir aktyvavimas el. Paštu: 9 žingsniai
„Kraken Jr.“„IoT“programos mokomoji dalis 1 dalis - registracija ir aktyvinimas el. Paštu: 1 pamoka (registracija el. Paštu ir el. Pašto adresas) 2 dalis („Cid“ir „Auth“kodo fiksavimas) „Tutorial“3 dalis („Arduino“registracija) „Kraken Jr IoT“yra paprasčiausias IoT diegimo būdas internetas. Naudodami „Arduino Uno + Ethernet Shield“, jūs
„Pi Cap Capong“projekto vadovėlis: 14 žingsnių (su paveikslėliais)
„Pi Cap Capong“projekto vadovėlis: „Pong“yra vienas iš mūsų mėgstamiausių vaizdo žaidimų, o neseniai vykusiame seminare mums pasisekė, kad Paulas Tanneris, Tina Aspiala ir Rossas Atkinas pavertė „Pong“į „Capong“; (talpinis + pong!), išlaužęs jį iš ekrano ir į rankas. Jie tu