Page 96 - MODUL MIKROKONTROLER
P. 96
Penjelasan:
Terdapat 2 subrutin yaitu delay10ms() dan delay1detik();
Kenapa tidak langsung dilakukan tundaan 1 detik? Mengapa harus melakukan
pengulangan 100 kali subrutin delay10ms()?;
Timer2 merupakan timer 8bit, artina dengan kemampuan seperti itu tidak bias
dilakukan langsung tundaan 11 detik, cara yang paling mudah untuk mendapat
tundaan 1 detik atau 1000 milidetik adalah mengulang 100 kali tundaan 10
milidetik;
Perhatikan register TCCR2 bit 0,1, dan 2 pada Gambar 8. Kemudian perhatikan
juga tabel 2 untuk semua kemungkinan nilai CS22, CS21 dan CS20.
Nilai prescale yang digunakan, mengikuti Tabel 2, perhatikan pada baris 14
adalah sebesar 1024 atau nilai clock dibagi dengan nilai prescale tersebut;
Agar terjadi penundaan sekitar 10 milidetik, maka nilai register TCNT2 diberi
nilai sebesar 94 heksadesimal atau 148 desimal;
.
Gambar 9.9 Register TCCR2
Baris 16 digunakan untuk menunggu terjadinya overflow pada Timer2,
kemudian bit overflow tersebut direset (baris 17).
Timer2 kemudian dihentikan dengan memberi nilai 0 atau 0x00 pada register
TCCR2.
Tabel 2. Konfigurasi sumber clock atau detak pada TCCR2
82