Satura rādītājs:

Arduino Hang Guardian - Arduino sargsuņa taimera apmācība: 6 soļi
Arduino Hang Guardian - Arduino sargsuņa taimera apmācība: 6 soļi

Video: Arduino Hang Guardian - Arduino sargsuņa taimera apmācība: 6 soļi

Video: Arduino Hang Guardian - Arduino sargsuņa taimera apmācība: 6 soļi
Video: arduino Pro Mini Watchdog timer проблема автоматический RESET СБРОС Reboot loop 2024, Novembris
Anonim
Image
Image

Sveiki visiem, Tā notiek ar mums visiem. Jūs veidojat projektu, entuziastiski pievienojat visus sensorus, un pēkšņi Arduino uzkaras un netiek apstrādāta neviena ievade.

“Kas notiek?”, Jūs jautāsit un sāksit meklēt kodu, lai tikai saprastu, ka esat iestrēdzis bezgalīgā cilpā. Paldies Dievam, Arduino atradās uz jūsu soliņa, nevis attālā vietā.

Šodien mēs apskatīsim, kā mēs varam izmantot sargsuņa taimeri Arduino, lai tas nenotiktu.

1. darbība: kas ir šis sargsuņa taimeris?

Kā iespējot sargsuņa taimeri?
Kā iespējot sargsuņa taimeri?

Arduino sargsuņa taimeris, kā norāda nosaukums, ir taimeris, kas darbojas atsevišķi no tāfeles galvenā CPU. Šo taimeri var izmantot, lai periodiski pārbaudītu tāfeles stāvokli un apstākļos, kad tāfele iestrēdzis programmatūras cilpā vai iestrēdzis aparatūras kļūmes dēļ, sargsuņa taimeris var atiestatīt Arduino un sākt to sākt no jauna.

Pēc noklusējuma, kad tas netiek lietots, šis taimeris ir atspējots visos projektos un tikai tad, kad mēs to iespējojam, mums periodiski jāpasaka, lai tas neatiestatītu mūsu paneli, ja tā joprojām darbojas, kā paredzēts.

Lai varētu izmantot sargsuņa taimeri, mūsu Arduino skicē vispirms ir jāiekļauj fails avr/wdt.h. Šī ir standarta bibliotēka, kurā tiek glabātas sargsuņa darbības.

2. darbība. Kā iespējot sargsuņa taimeri?

Kā iespējot sargsuņa taimeri?
Kā iespējot sargsuņa taimeri?
Kā iespējot sargsuņa taimeri?
Kā iespējot sargsuņa taimeri?

Lai iespējotu taimeri, mēs izmantojam funkciju “wdt_enable”, kur mums jānokārto sliekšņa intervāls, pēc kura tāfele tiks atiestatīta. Atkarībā no mūsu lietošanas gadījuma tas var ilgt no 15 milisekundēm līdz pat 8 sekundēm iepriekš noteiktos iestatījumos, kas atrodas sargsuņu bibliotēkā.

TRESHOLD - nemainīgs vārds

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. darbība: turpiniet programmas darbību

Turpiniet programmu darboties
Turpiniet programmu darboties

Tagad, kad taimeris ir iespējots, lai tas nevarētu atiestatīt mūsu Arduino, mums periodiski jāizsauc funkcija “wdt_reset”, lai pirms sliekšņa intervāla beigām atiestatītu sargsuņa taimeri.

Izvēloties atiestatīšanas intervālu, ir svarīgi ņemt vērā visas ilgstošās darbības, piemēram, datu lasīšanu vai nosūtīšanu vai savienojumu ar ārējiem sensoriem. Lai novērstu nejaušu atiestatīšanu, atiestatīšanas slieksnim jābūt vismaz pusotru reizi lielākam par šiem laikiem.

4. solis: lietošanas piemērs

Lietošanas piemērs
Lietošanas piemērs
Lietošanas piemērs
Lietošanas piemērs
Lietošanas piemērs
Lietošanas piemērs

Programmas paraugā, kuru varat lejupielādēt šeit, mēs vispirms iestatījām sargsuņa taimeri ar atiestatīšanas intervālu 4 sekundes. Tad, lai uzzinātu, ka mēs esam iestatīšanas funkcijā, mēs 3 reizes ātri mirgojam LED un pēc tam galvenajā cilpā vispirms atiestatām taimeri, iedegas gaismas diode ar pakāpeniski lielākiem intervāliem un pēc tam to izslēdzam. Nākamā cilpa atkal atiestata taimeri, līdz iedegšanās laiks ir garāks par 4 sekundēm.

Kad tas notiek, sargsuņa taimeris atiestata dēli un iestatīšana tiek izpildīta vēlreiz.

5. darbība: sargsuņa taimera problēmas

Viena no iespējamām problēmām, kas saistītas ar sargsuņa taimeri, atkarībā no jūsu Arduino sāknēšanas ielādētāja, ir tāda, ka, ja sargsuņa taimera vērtība ir pārāk zema un sāknēšanas ielādētājs neatjauno taimeri, augšupielādējot jaunu kodu, jūs varat sabojāt savu Arduino dēli tā, lai tas vienmēr būs iestrēdzis sāknēšanas fāzē. Bootloader mēģinās startēt, bet taimeris turpinās atiestatīt dēli, nekad neļaujot tam pareizi startēt. Lai novērstu šādas problēmas, vienmēr izmantojiet sliekšņa intervālus 2 sekundes vai vairāk.

6. solis: izbaudiet

Izbaudi
Izbaudi

Ja jums ir piemērs, kur esat izmantojis sargsuņa taimeri reālā projektā, paziņojiet man komentāros, noteikti atzīmējiet videoklipu ar Patīk un neaizmirstiet abonēt.

Prieks un paldies par lasīšanu/skatīšanos!

Ieteicams: