Агуулгын хүснэгт:

Arduino Hang Guardian - Arduino Watchdog Timer хичээл: 6 алхам
Arduino Hang Guardian - Arduino Watchdog Timer хичээл: 6 алхам

Видео: Arduino Hang Guardian - Arduino Watchdog Timer хичээл: 6 алхам

Видео: Arduino Hang Guardian - Arduino Watchdog Timer хичээл: 6 алхам
Видео: The Arduino hang guardian - Arduino watchdog timer tutorial 2024, Арваннэгдүгээр
Anonim
Image
Image

Бүгдээрээ сайн уу, Энэ нь бид бүгдэд тохиолддог. Та төсөл барьж, бүх мэдрэгчийг урам зоригтой холбож, гэнэт Arduino унтарч, оролт боловсруулагдахгүй байна.

"Юу болж байна вэ?", Та асууж, кодоо ухаж эхлэх болно, гэхдээ та хязгааргүй гогцоонд гацсан гэдгээ ойлгох болно. Бурханд талархъя, Arduino нь алс холын газар биш харин таны вандан сандал дээр байсан.

Өнөөдөр бид үүнээс урьдчилан сэргийлэхийн тулд Arduino дээр харуулын цаг хэмжигчийг хэрхэн ашиглах талаар авч үзэх болно.

Алхам 1: Энэ харуулын нохойны таймер гэж юу вэ?

Харуулын нохой таймерыг хэрхэн идэвхжүүлэх вэ?
Харуулын нохой таймерыг хэрхэн идэвхжүүлэх вэ?

Arduino watchdog таймер нь нэрнээсээ харахад самбар дээрх үндсэн CPU -ээс тусдаа ажилладаг таймер юм. Энэхүү таймерыг самбарын төлөв байдлыг үе үе шалгаж байх боломжтой бөгөөд самбар нь програм хангамжийн гогцоонд гацсан эсвэл тоног төхөөрөмжийн эвдрэлээс болж гацсан тохиолдолд харуулын нохой нь Arduino -г дахин тохируулж, дахин эхлүүлэх боломжтой болно.

Анхдагч байдлаар, энэ таймерыг ашиглаагүй тохиолдолд бүх төслүүд дээр идэвхгүй болдог бөгөөд зөвхөн үүнийг идэвхжүүлсэн тохиолдолд самбарыг хүлээгдэж байсны дагуу ажиллуулахгүй байгаа эсэхийг үе үе хэлж байх ёстой.

Харуулын нохойны цаг хэмжигчийг ашиглахын тулд бид эхлээд avr/wdt.h файлыг Arduino эскиздээ оруулах ёстой. Энэ бол манаачийн үйлдлийг хийдэг стандарт номын сан юм.

Алхам 2: Watchdog таймерыг хэрхэн идэвхжүүлэх вэ?

Харуулын нохой таймерыг хэрхэн идэвхжүүлэх вэ?
Харуулын нохой таймерыг хэрхэн идэвхжүүлэх вэ?
Харуулын нохой таймерыг хэрхэн идэвхжүүлэх вэ?
Харуулын нохой таймерыг хэрхэн идэвхжүүлэх вэ?

Таймерыг идэвхжүүлэхийн тулд бид "wdt_enable" функцийг ашигладаг бөгөөд самбарыг дахин тохируулах босго интервалыг давах шаардлагатай болно. Бидний хэрэглээний тохиолдлоос хамааран энэ нь 15 миллисекундээс 8 секунд хүртэл ажиглагчийн номын санд байгаа урьдчилан тохируулсан тохиргоонд байж болно.

Босго - Байнгын нэр

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: Хөтөлбөрөө ажиллуулж байгаарай

Програмаа үргэлжлүүлэн ажиллуулаарай
Програмаа үргэлжлүүлэн ажиллуулаарай

Одоо таймерыг идэвхжүүлсэн байхад Arduino -г дахин тохируулахаас урьдчилан сэргийлэхийн тулд бид "wdt_reset" функцийг дуудаж, босгоны интервал дуусахаас өмнө харуулын цагийг дахин тохируулах хэрэгтэй.

Дахин тохируулах интервалыг сонгохдоо өгөгдөл унших, илгээх эсвэл гадны мэдрэгчтэй холбогдох гэх мэт урт хугацааны үйлдлийг анхаарч үзэх нь маш чухал юм. Санамсаргүй байдлаар дахин тохируулахаас урьдчилан сэргийлэхийн тулд дахин тохируулах босго нь эдгээр хугацаанаас дор хаяж нэг хагас дахин их байх ёстой.

Алхам 4: Хэрэглээний жишээ

Хэрэглээний жишээ
Хэрэглээний жишээ
Хэрэглээний жишээ
Хэрэглээний жишээ
Хэрэглээний жишээ
Хэрэглээний жишээ

Эндээс татаж авах боломжтой програмын програм дээр бид эхлээд 4 секундын завсарлагаатай ажиглагч таймерыг тохируулсан болно. Дараа нь бид тохиргооны функцэд байгаа гэдгээ мэдэхийн тулд LED -ийг 3 удаа хурдан асаагаад үндсэн давталтад эхлээд таймерыг дахин тохируулж, аажмаар урт интервал бүхий LED асааж, дараа нь унтраадаг. Дараагийн давталт нь гэрэлтүүлгийн хугацаа 4 секундээс урт болтол таймерыг дахин тохируулна.

Ийм зүйл тохиолдвол харуулын цаг хэмжигч самбарыг дахин тохируулж, тохиргоог дахин хийнэ.

Алхам 5: Watchdog таймерын асуудлууд

Arduino -ийн ачаалагчаас хамаарч харуулын цаг хэмжигчтэй холбоотой байж болох нэг асуудал бол хэрэв харуулын цаг хэмжигчийн утга хэт доогуур, ачаалагч нь шинэ код байршуулахдаа таймерыг дахин тохируулаагүй бол та Arduino самбараа гэмтээж болзошгүй юм. энэ нь ачаалах үе шатанд үргэлж гацах болно. Ачаалагч эхлүүлэхийг оролдох боловч таймер нь самбарыг дахин тохируулах бөгөөд үүнийг зөв эхлүүлэхийг хэзээ ч зөвшөөрөхгүй. Ийм асуудал гарахаас урьдчилан сэргийлэхийн тулд 2 секунд ба түүнээс дээш хугацааны босгыг үргэлж хэрэглэж байх хэрэгтэй.

Алхам 6: Таашаал аваарай

Зугаацаарай
Зугаацаарай

Хэрэв танд харуулын цаг хэмжигчийг бодит төсөлд хаана ашиглаж байсан жишээ байгаа бол сэтгэгдлээ үлдээгээрэй, бичлэг таалагдсан эсэхийг шалгаад захиалахаа бүү мартаарай.

Баяр хүргэе, уншсан/үзсэн танд баярлалаа!

Зөвлөмж болгож буй: