2.3.5 TimerCounter
Atmega 8535 memiliki tiga modul timer yang terdiri dari dua buah timercounter 8 bit dan satu buah timercounter 16 bit. Ketiga modul ini dapat diatur dalam mode yang berbeda-
beda secara individu dan tidak saling mempengaruhi satu sama lain. Selain itu semua timercounter juga dapat difungsikan sebagai pencacahan waktu seperti pada jam digital
maupun untuk menghasilkan sinyal PWM Pulse Width Modulation yakni sinyal kotak dengan frekuensi dan duty cycle yang nilainya bisa diatur [7].
2.3.5.1 Timercounter0
Timercounter0 merupakan modul timercounter 8 bit dengan fitur sebagai berikut : a. timercounter 1 kanal.
b. Auto reload yaitu timer akan dinolkan kembali saat match compare.
c. Dapat menghasilkan pulsa PWM pulse width modulation dengan glitchfree.
d. Frequency generator.
e. Prescalar 8 bit untuk timer.
f. Membangkitkan interupsi saat timer overflowdan atau match compare. g. External event counter.
Perhitungan overflow interrupt sebagai pembangkit PWM ditunjukan pada persamaan 2.2, 2.3, dan 2.4 berikut [7].
2.2
2.3
2.4 Keterangan :
f = frekuensi yang digunakan untuk eksekusi program
T = periode
N = prescaller yang digunakan
OCR = nilai cacahan pulsa Pulse = lebar pulsa
2.3.5.2 Mode Operasi
1. Mode normal, timer digunakan untuk menghitung saja, membuat delay, danmengitung selang waktu [10].
2. Mode phase correct PWM PCP, digunakan untuk menghasilkan sinyal PWM dimana nilai register counter TCNT0 yang mencacah naik dan turun secara terus
menerus akan selalu dibandingakan dengan register pembanding OCR0 [5]. Hasil perbandingan register TCNT0 dan OCR0 digunakan untuk membangkitkan sinyal
PWM yang dikeluarkan pada OC0 seperti ditunjukan Gambar 2.5.
Gambar 2.5. Mode Phase Correct PWM [6]
3. CTC Clear timer on compare match, register counter TCNT0 akan mencacah naik kemudian di-reset atau kembali menjadi 0x00 pada saat nilai TCNT0 sama dengan
OCR0. Sebelumnya OCR diset dulu, karena timer 0 dan 2 maksimumnya 255, maka range OCR 0-255 [7].
4. Fast PWM, mode ini hampir sama dengan mode phase correct PWM, hanya perbedaannya adalah registercounter TCNT0 mencacah naik saja dan tidak pernah
mencacah turun seperti terlihat pada Gambar 2.6 [7].