Mündəricat:

The Arduino Hang Guardian - Arduino Watchdog Timer Tutorial: 6 Addım
The Arduino Hang Guardian - Arduino Watchdog Timer Tutorial: 6 Addım

Video: The Arduino Hang Guardian - Arduino Watchdog Timer Tutorial: 6 Addım

Video: The Arduino Hang Guardian - Arduino Watchdog Timer Tutorial: 6 Addım
Video: The Arduino hang guardian - Arduino watchdog timer tutorial 2024, Noyabr
Anonim
Image
Image

Hər kəsə salam, Hamımızın başına gəlir. Bir layihə qurursunuz, bütün sensorları həvəslə bağlayırsınız və birdən Arduino asılır və heç bir giriş işlənmir.

"Nə baş verir?" Deyə soruşacaqsınız və kodunuzu araşdırmağa başlayacaqsınız, ancaq sonsuz bir döngədə ilişib qaldığınızı başa düşəcəksiniz. Allaha şükür ki, Arduino uzaq bir yerdə deyil, skamyanızda idi.

Bu gün bunun baş verməməsi üçün Arduino -da gözətçi sayğacından necə istifadə edə biləcəyimizə baxacağıq.

Addım 1: Bu Gözətçi Zamanlayıcı nədir?

Nəzarətçi Taymerini necə aktivləşdirmək olar?
Nəzarətçi Taymerini necə aktivləşdirmək olar?

Adından da göründüyü kimi Arduino gözətçi taymeri, lövhədəki əsas CPU -dan ayrı işləyən bir taymerdir. Bu taymer, lövhənin vəziyyətini vaxtaşırı yoxlamaq üçün istifadə edilə bilər və lövhənin bir proqram döngəsində sıxışdığı və ya hardware çatışmazlığı səbəbiylə sıxışdığı hallarda, gözətçi taymeri Arduino'yu sıfırlaya və yenidən başlaya bilər.

Varsayılan olaraq, istifadə edilmədikdə bu taymer bütün layihələrdə deaktiv edilir və yalnız onu aktivləşdirdiyimiz zaman, hələ də gözlənildiyi kimi işləsə lövhəmizi sıfırlamamasını vaxtaşırı bildirməyimizdən əmin olmalıyıq.

Gözətçi sayğacından istifadə etmək üçün əvvəlcə avr/wdt.h faylını Arduino eskizimizə daxil etməliyik. Bu, gözətçi hərəkətlərini saxlayan standart kitabxanadır.

Addım 2: Gözətçi Timerini necə aktivləşdirmək olar?

Nəzarətçi Taymerini necə aktivləşdirmək olar?
Nəzarətçi Taymerini necə aktivləşdirmək olar?
Nəzarətçi Taymerini necə aktivləşdirmək olar?
Nəzarətçi Taymerini necə aktivləşdirmək olar?

Taymeri işə salmaq üçün lövhənin sıfırlanacağı ərəfədə keçməyimiz lazım olan "wdt_enable" funksiyasından istifadə edirik. İstifadə vəziyyətimizdən asılı olaraq, bu, gözətçi kitabxanasında olan əvvəlcədən təyin edilmiş parametrlərdə 15 milisaniyədən 8 saniyəyə qədər ola bilər.

ƏSAS - DAİMİ AD

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

Addım 3: Proqramınızı Çalışdırın

Proqramınızı Çalışdırın
Proqramınızı Çalışdırın

İndi, timer aktiv olduqda, Arduino qurğusunun sıfırlanmasının qarşısını almaq üçün, eşik aralığı bitməmiş gözətçi timerini sıfırlamaq üçün vaxtaşırı olaraq "wdt_reset" funksiyasına zəng etməliyik.

Bir sıfırlama aralığı seçərkən, məlumatları oxumaq və ya göndərmək və ya xarici sensorlara qoşulmaq kimi uzun bir əməliyyatı nəzərə almağımız çox vacibdir. Təsadüfi sıfırlamaların qarşısını almaq üçün sıfırlama həddi bu vaxtlardan ən azı bir yarım dəfə çox olmalıdır.

Addım 4: Nümunə İstifadəsi

Nümunə İstifadəsi
Nümunə İstifadəsi
Nümunə İstifadəsi
Nümunə İstifadəsi
Nümunə İstifadəsi
Nümunə İstifadəsi

Buradan yükləyə biləcəyiniz nümunə proqramda əvvəlcə 4 saniyəlik sıfırlama aralığında gözətçi taymerini qururuq. Quraşdırma funksiyasında olduğumuzu bilmək üçün bir LED -i 3 dəfə tez yandırırıq və sonra əsas döngədə əvvəlcə taymeri sıfırlayırıq, tədricən daha uzun fasilələrlə bir LED yandırırıq və sonra söndürürük. Növbəti döngə, işıqlandırma müddəti 4 saniyədən çox olana qədər taymeri yenidən sıfırlayır.

Bu baş verdikdə, gözətçi taymeri lövhəni sıfırlayır və yenidən qurulur.

Addım 5: Watchdog Timer Problemləri

Arduino -nun yükləyicisindən asılı olaraq, gözətçi taymeri ilə bağlı bir problem, gözətçi timer dəyərinin çox aşağı olması və yükləyicinin yeni kod yükləyərkən taymeri sıfırlamamasıdır, nəticədə Arduino lövhənizə zərər verə bilərsiniz. həmişə açılış mərhələsində qalacaq. Bootloader başlamağa çalışacaq, ancaq taymer lövhəni sıfırlamağa davam edəcək və heç vaxt düzgün başlamasına icazə verməyəcək. Bu kimi problemlərin qarşısını almaq üçün hər zaman 2 saniyə və ya daha çox olan eşik aralıqlarını istifadə etdiyinizə əmin olun.

Addım 6: Zövq alın

Zövq alın
Zövq alın

Həqiqi bir layihədə gözətçi taymeri harada istifadə etdiyinizə dair bir nümunəniz varsa, şərhlərdə bildirin, videonu bəyəndiyinizə əmin olun və abunə olmağı unutmayın.

Sağolun və oxuduğunuz/izlədiyiniz üçün təşəkkürlər!

Tövsiyə: