INHOUDSOPGAWE:

The Arduino Hang Guardian - Arduino Watchdog Timer Tutoriaal: 6 stappe
The Arduino Hang Guardian - Arduino Watchdog Timer Tutoriaal: 6 stappe

Video: The Arduino Hang Guardian - Arduino Watchdog Timer Tutoriaal: 6 stappe

Video: The Arduino Hang Guardian - Arduino Watchdog Timer Tutoriaal: 6 stappe
Video: arduino Pro Mini Watchdog timer проблема автоматический RESET СБРОС Reboot loop 2024, November
Anonim
Image
Image

Haai almal, Dit gebeur met ons almal. U bou 'n projek, verbind al die sensors entoesiasties, en skielik hang die Arduino en word geen insette verwerk nie.

'Wat gaan aan?', Sal u vra en deur u kode begin kyk, net om te besef dat u in 'n oneindige lus vasgeval het. Goddank was die Arduino op u bank en nie op 'n afgeleë plek nie.

Vandag gaan ons kyk hoe ons die waghond -timer op die Arduino kan gebruik om te verhoed dat dit gebeur.

Stap 1: Wat is hierdie waghond -timer?

Hoe kan u die waghond -timer inskakel?
Hoe kan u die waghond -timer inskakel?

Die Arduino -waghond -timer, soos die naam aandui, is 'n timer wat apart van die hoof -SVE op die bord werk. Hierdie timer kan gebruik word om die toestand van die bord periodiek te kontroleer, en in gevalle waar die kaart in 'n sagtewarelus vasgesit het of vasgekeer het weens hardeware -fout, kan die waghond -timer die Arduino herstel en weer van vooraf begin.

As die timer nie gebruik word nie, is hierdie timer standaard uitgeskakel vir alle projekte, en slegs as ons dit inskakel, moet ons dit periodiek aanskakel om ons bord nie terug te stel as dit steeds werk soos verwag is nie.

Om die waghond -timer te kan gebruik, moet ons eers die avr/wdt.h -lêer in ons Arduino -skets insluit. Dit is die standaard biblioteek wat die waghondaksies bevat.

Stap 2: Hoe kan u die waghond -timer inskakel?

Hoe kan u die waghond -timer inskakel?
Hoe kan u die waghond -timer inskakel?
Hoe kan u die waghond -timer inskakel?
Hoe kan u die waghond -timer inskakel?

Om die timer in te skakel, gebruik ons die funksie "wdt_enable" waar ons moet slaag in die drempelinterval waarop die bord herstel sal word. Afhangende van ons gebruik, kan dit van 15 millisekondes tot 8 sekondes duur in vooraf gedefinieerde instellings wat in die waghondbiblioteek voorkom.

DREMPEL - KONSTANTE NAAM

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

Stap 3: Hou u program aan die gang

Hou u program aan die gang
Hou u program aan die gang

As die timer ingeskakel is, moet ons die funksie “wdt_reset” periodiek bel om die waghond -timer terug te stel voordat die drempelinterval verstryk, om te verhoed dat dit ons Arduino herstel.

By die keuse van 'n herstelinterval is dit van kardinale belang dat ons enige langdurige operasie in ag neem, soos om data te lees of te stuur of om aan eksterne sensors te koppel. Die terugsteldrempel moet ten minste een en 'n half keer groter wees as hierdie tye om toevallige herstellings te voorkom.

Stap 4: Voorbeeldgebruik

Voorbeeld gebruik
Voorbeeld gebruik
Voorbeeld gebruik
Voorbeeld gebruik
Voorbeeld gebruik
Voorbeeld gebruik

In die voorbeeldprogram wat u hier kan aflaai, stel ons eers die waghondtimer op met 'n herstelinterval van 4 sekondes. Om te weet dat ons in die opstelfunksie is, flits ons vinnig 3 keer 'n LED en dan stel ons die timer weer in die hooflus, steek 'n LED aan met geleidelik langer tussenposes en skakel dit dan uit. Die volgende lus stel die timer weer in totdat die verligtingstyd langer as 4 sekondes is.

As dit gebeur, stel die waghond -timer die bord terug en word die opstelling weer uitgevoer.

Stap 5: Probleme met waghond -timer

Een moontlike probleem met die waghond -timer, afhangende van die selflaaiprogram van u Arduino, is dat as die waarde van die waghond -timer te laag is en die selflaaiprogram nie die timer herstel wanneer u nuwe kode oplaai nie, u Arduino -bord op so 'n manier kan beskadig dat dit sal altyd in die opstartfase vassteek. Die selflaaiprogram sal probeer om te begin, maar die tydhouer sal die bord aanhou herstel en nooit toelaat dat dit behoorlik begin nie. Om probleme soos hierdie te voorkom, moet u altyd 'n drempelinterval van 2 sekondes of meer gebruik.

Stap 6: Geniet dit

Geniet dit
Geniet dit

As u 'n voorbeeld het van waar u die waghond -timer in 'n werklike projek gebruik het, laat weet my in die kommentaar, maak seker dat u van die video hou en moenie vergeet om in te teken nie.

Sterkte en dankie vir die lees/kyk!

Aanbeveel: