09 Februari 2012

Setting Watchdog Timer Pada AVR

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.

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

Tidak ada komentar:

09 Februari 2012

Setting Watchdog Timer Pada AVR

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.

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


Related Post:

Tidak ada komentar: