Sebelum membahas lebih jauh mengenai watchdog timer pada
mikrokontroler sebaiknya kita ketahui terlebih dulu apa yang dimaksud
watchdog timer dan apa fungsi dari watchdog timer itu sendiri. Watchdog
timer merupakan timer yang terpisah dengan sistem CPU mikrokontroler
sehingga tidak akan terpengaruh bagaimanapun keadaan CPU bekerja.
Watchdog timer berperan sangat penting untuk kelangsungan hidup
CPU dan menjaga CPU agar tetap ON karena dapat mengatasi kemacetan alur program pada mikrokontroler, biasanya dalam PC kemacetan ini kita sering menyebutnya "hang up". Kemacetan program ini biasa disebabkan oleh beberapa hal baik itu dari segi hardware maupun dari softwarenya sendiri.
CPU dan menjaga CPU agar tetap ON karena dapat mengatasi kemacetan alur program pada mikrokontroler, biasanya dalam PC kemacetan ini kita sering menyebutnya "hang up". Kemacetan program ini biasa disebabkan oleh beberapa hal baik itu dari segi hardware maupun dari softwarenya sendiri.
Lantas bagaimana prinsip kerja watchdog timer ini sehingga bisa
menanggulangi kemacetan program pada mikrokontroler? Prinsip dari
watchdog timer ini sebenarnya cukup sederhana sama seperti timer lain
yang selalu mencacah naik (count up) setiap satu siklus mesin, namun
bedanya dengan timer lain watchdog timer ini akan mencacah terus menerus
tanpa henti sekalipun kondisi CPU macet karena seperti dikatakan tadi
timer ini terpisah dengan CPU. Setelah register watchdog maksimum maka
akan terjadi overflow dan secara otomatis alur program pada
mikrokontroler akan tereset ke awal. Pertanyaannya bagaimana program
berjalan dari awal sampai akhir jika terjadi reset secara terus
menerus?? Jawabannya dengan cara mengatur program watchdog timer kembali
nol sebelum maksimum dan terjadi overflow.
Listing Program:
// Watchdog Timer initialization // Watchdog Timer Prescaler: OSC/16k #pragma optsize- WDTCR=0x18; WDTCR=0x08; #ifdef _OPTIMIZE_SIZE_ #pragma optsize+ #endif for(;;) { #asm("wdr") // Place your code here #asm("nop") }
Selanjutnya misalkan terjadi suatu hang-up pada alur program
mikrokontoler maka otomatis subrutin diatas yang kita gunakan untuk
mereset tidak akan berfungsi sehingga pada saat inilah watchdog timer
akan mencacah hingga terjadi overflow dan mereset program kembali
keawal.
Referensi :
www.zer07even.com
Referensi :
www.zer07even.com
Tidak ada komentar:
Posting Komentar