Mundarija:

Arduino Hang Guardian - Arduino Watchdog Timer qo'llanmasi: 6 qadam
Arduino Hang Guardian - Arduino Watchdog Timer qo'llanmasi: 6 qadam

Video: Arduino Hang Guardian - Arduino Watchdog Timer qo'llanmasi: 6 qadam

Video: Arduino Hang Guardian - Arduino Watchdog Timer qo'llanmasi: 6 qadam
Video: The Arduino hang guardian - Arduino watchdog timer tutorial 2024, Noyabr
Anonim
Image
Image

Hammaga salom, Bu hammamizda sodir bo'ladi. Siz loyiha qurasiz, barcha sensorlarni g'ayrat bilan bog'laysiz va to'satdan Arduino to'xtaydi va hech qanday ma'lumot qayta ishlanmaydi.

"Nima bo'lyapti?", Deb so'raysiz va kodingizni o'rganishni boshlaysiz, faqat cheksiz tsiklga tushib qolganingizni tushunasiz. Xudoga shukur, Arduino sizning skameykangizda edi va uzoq joyda emas edi.

Bugun biz buni oldini olish uchun Arduino -dagi qo'riqchi taymeridan qanday foydalanish kerakligini ko'rib chiqamiz.

1 -qadam: Bu qo'riqchi taymeri nima?

Watchdog taymerini qanday yoqish mumkin?
Watchdog taymerini qanday yoqish mumkin?

Arduino qo'riqchi taymeri, nomidan ko'rinib turibdiki, bortdagi asosiy protsessordan alohida ishlaydigan taymer. Bu taymer vaqti -vaqti bilan taxtaning holatini tekshirish uchun ishlatilishi mumkin, va agar dasturiy ta'minot uzilishida qolib ketgan yoki apparat ishlamay qolganligi sababli, qo'riqchi taymeri Arduino -ni qayta o'rnatishi va uni qaytadan boshlashi mumkin.

Odatiy bo'lib, bu taymer ishlatilmaganda, barcha loyihalarda o'chirib qo'yiladi va faqat biz uni yoqganimizda, biz vaqti -vaqti bilan kutish rejimida ishlayotgan bo'lsa, taxtamizni tiklamasligini aytib turishimiz kerak.

Kuzatuvchi taymeridan foydalanish uchun biz avval avr/wdt.h faylini Arduino eskiziga kiritishimiz kerak. Bu qo'riqchi harakatlarini o'tkazadigan standart kutubxona.

2 -qadam: Watchdog taymerini qanday yoqish mumkin?

Watchdog taymerini qanday yoqish mumkin?
Watchdog taymerini qanday yoqish mumkin?
Watchdog taymerini qanday yoqish mumkin?
Watchdog taymerini qanday yoqish mumkin?

Taymerni yoqish uchun biz "wdt_enable" funktsiyasidan foydalanamiz, bu erda biz taxtani qayta o'rnatiladigan chegara oralig'idan o'tishimiz kerak. Foydalanish holatimizga qarab, bu qo'riqchi kutubxonasida joylashgan oldindan belgilangan sozlamalarda 15 millisekunddan 8 sekundgacha bo'lishi mumkin.

BOSHQARA - DAVOMI NOMI

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 -qadam: Dasturingiz ishlashini davom ettiring

Dasturingiz ishlashini davom ettiring
Dasturingiz ishlashini davom ettiring

Endi, taymer yoqilgan bo'lsa, bizning Arduino -ni qayta tiklanishiga yo'l qo'ymaslik uchun vaqti -vaqti bilan "wdt_reset" funktsiyasini chaqirib, chegara tugashidan oldin qo'riqchi taymerini qayta o'rnatishimiz kerak.

Qayta tiklash oralig'ini tanlashda, ma'lumotlarni o'qish yoki yuborish yoki tashqi sensorlarga ulanish kabi har qanday uzoq davom etadigan operatsiyalarni hisobga olishimiz juda muhimdir. Tasodifiy qayta o'rnatishning oldini olish uchun, qayta o'rnatish chegarasi bu vaqtlardan kamida bir yarim baravar ko'p bo'lishi kerak.

4 -qadam: Foydalanish misollari

Foydalanish misoli
Foydalanish misoli
Misol foydalanish
Misol foydalanish
Foydalanish misoli
Foydalanish misoli

Bu erda yuklab olishingiz mumkin bo'lgan namunaviy dasturda, biz birinchi navbatda, tiklash soniyasi 4 sekund bo'lgan qo'riqchi taymerini o'rnatdik. O'rnatish funktsiyasida ekanligimizni bilish uchun biz LEDni 3 marta tez yontiramiz, so'ngra asosiy tsiklda taymerni qayta o'rnatamiz, asta -sekin uzoqroq vaqtli LEDni yoqamiz va keyin o'chiramiz. Keyingi tsikl taymerni qayta yoqish vaqti 4 sekunddan oshguncha qayta o'rnatadi.

Bu sodir bo'lganda, qo'riqchi taymeri taxtani tiklaydi va sozlash yana bajariladi.

5 -qadam: Watchdog taymerining muammolari

Arduino -ning yuklash qurilmasiga qarab, qo'riqchi taymerining mumkin bo'lgan muammolaridan biri shundaki, agar qo'riqchi taymerining qiymati juda past bo'lsa va yuklovchi yangi kodni yuklashda taymerni tiklamasa, siz Arduino kartangizga zarar etkazishingiz mumkin. u har doim yuklash bosqichida qolib ketadi. Bootloader ishga tushirishga harakat qiladi, lekin taymer taxtani asl holatiga qaytarishda davom etadi va hech qachon uning to'g'ri ishga tushishiga yo'l qo'ymaydi. Bunday muammolarning oldini olish uchun har doim 2 soniya yoki undan ko'proq vaqt oralig'idan foydalaning.

6 -qadam: rohatlaning

Xursand bo'ling
Xursand bo'ling

Agar sizda qo'riqchi taymerini haqiqiy loyihada qayerda ishlatganingiz haqida misolingiz bo'lsa, izohlarda menga xabar bering, video yoqganiga ishonch hosil qiling va obuna bo'lishni unutmang.

Salom va o'qiganingiz/ko'rganingiz uchun tashakkur!

Tavsiya: