Categories
Mikrokontroler

Menggunakan Timer1 untuk Tundaan 1 detik (AVR)

Sekarang kita gunakan Timer1 (16 bit) untuk melakukan tundaan sebesar 1 detik. Konsepnya sama seperti timer yang lain, yaitu menggunakan interupsi overflow-nya Timer1. Berapakah nilai inisialisasi-nya, kita gunakan program KAVRCalc by Kevin Rosenberg untuk menghitung, hasilnya ditunjukkan pada Gambar berikut…

Penjelasan Gambar:

  1. Pilih frekuensi kristal yang digunakan dalam rangkaian, dalam hal ini dipilih 11.0592MHz;
  2. Pilih pembagi detak-nya atau praskalar-nya, dalam contoh ini dipilih 256. Anda bisa melakukan eksperimen, coba-coba memilih nilai praskalar lainnya asalkan error yang dihasilkan tetap 0% (lihat panah 5);
  3. Tuliskan frekuensi yang diinginkan (berapa jumlah interupsi per detiknya), tuliskan 1, artinya 1 kali interupsi per detik atau tundaan 1 detik;
  4. Pilih satuannya, yaitu Hz;
  5. Cek apakah error-nya 0%? Selalu usahakan nilai 0 atau mendekati 0 agar diperoleh akurasi yang lebih baik;
  6. Catat hasil perhitungan nilai inisialisasinya, dalam hal ini terhitung 0x5740 (satuan heksadesimal) dalam 16-bit yang nantinya kita simpan ke TCNT1L dan TCNT1H.
Langkah selanjutnya adalah menuliskan program-nya…