Isi kandungan:

Tutorial Arduino Hang Guardian - Arduino Watchdog Timer: 6 Langkah
Tutorial Arduino Hang Guardian - Arduino Watchdog Timer: 6 Langkah

Video: Tutorial Arduino Hang Guardian - Arduino Watchdog Timer: 6 Langkah

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

Hai semua, Ia berlaku kepada kita semua. Anda membina projek, menyambungkan semua sensor dengan penuh semangat, dan tiba-tiba, Arduino tergantung dan tiada input diproses.

"Apa yang sedang terjadi?", Anda akan bertanya dan mula menggali kod anda, hanya untuk menyedari bahawa anda terjebak dalam lingkaran yang tidak terhingga. Syukurlah Arduino berada di bangku simpanan anda dan bukan di lokasi terpencil.

Hari ini, kita akan melihat bagaimana kita boleh menggunakan pemasa pengawas di Arduino untuk mengelakkan perkara ini berlaku.

Langkah 1: Apakah Pemasa Pengawas Ini?

Bagaimana Mengaktifkan Pemasa Pengawas?
Bagaimana Mengaktifkan Pemasa Pengawas?

Pemasa pengawas Arduino seperti namanya adalah pemasa yang berjalan secara berasingan dari CPU utama di papan. Pemasa ini boleh digunakan untuk memeriksa keadaan papan secara berkala dan dalam keadaan di mana papan terjebak dalam gelung perisian atau tersekat kerana kegagalan perkakasan, pemasa pengawas dapat menetapkan semula Arduino dan memulainya dari awal lagi.

Secara lalai ketika tidak digunakan pemasa ini dilumpuhkan pada semua projek dan hanya apabila kami mengaktifkannya, kami perlu memastikan secara berkala untuk memberitahu agar tidak menetapkan semula papan kami jika masih beroperasi seperti yang diharapkan.

Untuk dapat menggunakan pemasa pengawas, pertama-tama kita perlu memasukkan fail avr / wdt.h dalam lakaran Arduino kami. Ini adalah pustaka standard yang menyimpan tindakan pengawas.

Langkah 2: Bagaimana Mengaktifkan Pemasa Pengawas?

Bagaimana Mengaktifkan Pemasa Pengawas?
Bagaimana Mengaktifkan Pemasa Pengawas?
Bagaimana Mengaktifkan Pemasa Pengawas?
Bagaimana Mengaktifkan Pemasa Pengawas?

Untuk mengaktifkan pemasa, kita menggunakan fungsi "wdt_enable" di mana kita perlu melewati selang ambang di mana papan akan diset semula. Bergantung pada kes penggunaan kami, ini boleh berlangsung dari 15 milisaat hingga 8 saat dalam tetapan yang ditentukan sebelumnya yang terdapat di perpustakaan pengawas.

THRESHOLD - NAMA KONSTAN

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

Langkah 3: Pastikan Program Anda Berjalan

Pastikan Program Anda Berjalan
Pastikan Program Anda Berjalan

Sekarang, dengan pemasa diaktifkan, untuk menghalangnya daripada mengatur semula Arduino kita, kita perlu memanggil fungsi "wdt_reset" secara berkala untuk menetapkan semula pemasa pengawas sebelum selang ambang batas berakhir.

Semasa memilih selang tetapan semula, sangat penting untuk kita mempertimbangkan operasi yang panjang seperti membaca atau menghantar data atau menyambung ke sensor luaran. Ambang set semula mestilah sekurang-kurangnya satu setengah kali lebih besar daripada masa ini untuk mengelakkan penyusunan semula secara tidak sengaja.

Langkah 4: Contoh Penggunaan

Contoh Penggunaan
Contoh Penggunaan
Contoh Penggunaan
Contoh Penggunaan
Contoh Penggunaan
Contoh Penggunaan

Dalam program contoh yang boleh anda muat turun di sini, pertama-tama kami mengatur pemasa pengawas dengan selang tetapan semula 4 saat. Kemudian untuk mengetahui bahawa kita berada dalam fungsi persediaan, kita menyalakan LED 3 kali dengan cepat dan kemudian di gelung utama kita menetapkan semula pemasa, menyalakan LED dengan selang waktu yang semakin lama dan kemudian kita mematikannya. Gelung seterusnya menetapkan semula pemasa lagi sehingga masa cahaya lebih lama daripada 4 saat.

Apabila ini berlaku, pemasa pengawas menetapkan semula papan dan penyediaan dijalankan lagi.

Langkah 5: Isu Pemasa Pengawas

Satu kemungkinan masalah dengan pemasa pengawas, bergantung pada pemuat boot Arduino anda ialah jika nilai pemasa pengawas terlalu rendah dan pemuat but tidak menetapkan semula pemasa ketika memuat naik kod baru, anda mungkin akhirnya merosakkan papan Arduino anda dengan cara yang ia akan selalu tersekat dalam fasa boot. Pemuat but akan cuba dimulakan, tetapi pemasa akan terus mengatur semula papan, tidak akan membiarkannya dimulakan dengan betul. Untuk mengelakkan masalah seperti ini, pastikan untuk selalu menggunakan selang ambang 2 saat atau lebih.

Langkah 6: Nikmati

Nikmati
Nikmati

Sekiranya anda mempunyai contoh di mana anda telah menggunakan pemasa pengawas dalam projek sebenar, beritahu saya dalam komen, pastikan untuk menyukai video tersebut dan jangan lupa untuk melanggan.

Sorakan dan terima kasih kerana membaca / menonton!

Disyorkan: