Mundarija:
- 1 -qadam: Bu qo'riqchi taymeri nima?
- 2 -qadam: Watchdog taymerini qanday yoqish mumkin?
- 3 -qadam: Dasturingiz ishlashini davom ettiring
- 4 -qadam: Foydalanish misollari
- 5 -qadam: Watchdog taymerining muammolari
- 6 -qadam: rohatlaning
Video: Arduino Hang Guardian - Arduino Watchdog Timer qo'llanmasi: 6 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:24
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?
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?
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
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
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
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:
AVR Assembler qo'llanmasi 2: 4 qadam
AVR Assembler 2 darsligi: Bu darslik " AVR Assembler Tutorial 1 " ning davomi. Agar siz 1 -o'rgatuvchidan o'tmagan bo'lsangiz, hozir to'xtab, avval buni bajaring, bu qo'llanmada biz atmega328p ning montaj tilini dasturlashni o'rganishni davom ettiramiz
AVR Assembler qo'llanmasi 1: 5 qadam
AVR Assembler 1 -o'rgatuvchisi: Men Arduino -da ishlatiladigan mikrokontroller bo'lgan Atmega328p uchun montaj tili dasturlarini yozish bo'yicha bir qator darsliklar yozishga qaror qildim. Agar odamlar qiziqishni davom ettirsalar, men tugamagunimcha, haftasiga bir yoki undan ko'p vaqtni davom ettiraman
AVR Assembler qo'llanmasi 6: 3 qadam
AVR Assembler Tutorial 6: Tutorial 6 -ga xush kelibsiz! Bugungi dars qisqa bo'ladi, u erda biz bitta atmega328p va boshqasi o'rtasida ikkita port yordamida ma'lumotlarni uzatishning oddiy usulini ishlab chiqamiz. Keyin biz 4 -darslik va Ro'yxatdan o'tish kitobidan zar zarralarini olamiz
AVR Assembler qo'llanmasi 8: 4 qadam
AVR Assembler 8 darsligi: 8 -darsga xush kelibsiz! Ushbu qisqa darsda biz prototiplash komponentlarini alohida " bosilgan " elektron karta.
AVR Assembler qo'llanmasi 11: 5 qadam
AVR Assembler Tutorial 11: Tutorial 11 -ga xush kelibsiz! Ushbu qisqa darsda biz nihoyat yakuniy loyihamizning birinchi qismini qurmoqchimiz. Siz qilishingiz kerak bo'lgan birinchi narsa - bu darslikning oxirgi bosqichiga o'tish va videoni ko'rish. Keyin bu erga qaytib keling. [siz pauza qilasiz