Pertama kita menentukan mode timer yang digunakan, hal tersebut juga termasuk mensetting sumber clock. Timer yang akan saya gunakan adalah timer mode 0 8 bit dengan sumber clock dari oscilator yang tiap detaknya sama dengan detak oscillator crystal yaitu dengan mensetting register TCCR0 ( register yang memilik 8 bit ) dengan nilai = 0x01;// kalo nilai TCCRO = 0x02 berarti sekali detaknya sama dengan oscillator/8 , sehingga timer akan berdetak jika clock oscillator telah berdetak sebanyak 8 kali.
Kemudian kita menset register TCCNT yang diperlukan dari batas yang kita setting/kita tentuin sendiri sampai nilai maksimal yaitu 255 jadi kita hanya tentuin ??? sampai batas maksimal ( waktunya berarti rentang waktu dari batas yang ditentuin sampai batas maksimal ) , sebagai catatan TCNT itu sendiri merupakan register yang berfungsi untuku menambahkan atau menurunkan tiap -tiap pulsa clock. batas bawah sampai atas TCCNT untuk timer mode 0 yaitu 0-255.

Misalkan  jadi langsung aja pada aplikasinya yaitu kita ingin membuat timer 1 uSekon
Misalkan saya punya oscilator bernilai 11,0592 MHz(11059200 Hz) maka tiap 1 clock pulsa yaitu membutuhkan waktu (ingat rumus menghitung periode yaitu 1/f) 1/11059200 yaitu 0,00000009 sekon kalo dirubah ke mikro menjadi 0,09 us, kita ingin membuat timer 1 us, jadi berapa kali rentan waktu antar ??? smpai 255 ===> 1 us/0,09 us = 11 kali, jadi 255-11 = 244. maka TCNTnya kita set dengan nilai 244
Sebelum TCCNT ini overlow ( dari maksimal kembali lagi ke nilai 0 ) maka sistem tidak melakukan apa-apa. yaitu dengan menggunakan register TIFR( Timer/counter interrupt Flag Register ) yang berfungsi sebagai flag register interupt/ register untuk mengetahui status interupt), jadi untuk mengetahui apakah TCNT suda overlow apa tidak maka kita bisa menset TIFR ==0 (belum overlow) jika belum overflow sistem tidak melakukan apa-apa.
Setelah itu jika overflow maka kita harus men”turn off”kan timer yaitu dengan meng”and”kan nilai TCCRO yang tadinya bernilai 0x01 kita rubah menjadi 0x00 ( tidak aktif timernya ) dengan nilai 0xF8, digunakan nilai tersebut agar setting bitnya selain cs00,cs01,cs10 yaitu bit ke4-bit8 tidak berubah (jika berubah akan merubah sistem yang lain )
dan kemudian mereset bit Tovo pada register TIFR agar kembali ke awal lagi tanpa merubah konfigurasi bit yang lain yaitu dengan meng”and”kan nya dengan nilai 0xFC maka nilainya berubah ke awal lagi yaitu tidak overflow.

One thought on “Membuat Delay Dengan Memanfaatkan Timer Mikrokontroler”

Tinggalkan Balasan

Situs ini menggunakan Akismet untuk mengurangi spam. Pelajari bagaimana data komentar Anda diproses.