Anda di halaman 1dari 7

Timer/Counter

1. Timer/Counter adalah sebuah unit yang dapat menghitung (Counter) dan


melakukan timing dengan menggunakan frekuensi kristal sebagai sumber
clock counternya internal atau sumber eksternal melalui pin T0.
2. Timer/Counter 0 (terdiri dari 8 bit)
Single Compare Unit Counter
Clear Timer on Compare Match (Auto Reload)
Glitch-free, Phase Correct Pulse Width Modulator (PWM)
Frequency Generator
External Event Counter
10-bit Clock Prescaler
Overflow and Compare Match Interrupt Sources (TOV0 and OCF0)
Timer/Counter 1 (terdiri dari 16 bit)
True 16-bit Design (i.e., Allows 16-bit PWM)
Two Independent Output Compare Units
Double Buffered Output Compare Registers
One Input Capture Unit
Input Capture Noise Canceler
Clear Timer on Compare Match (Auto Reload)
Glitch-free, Phase Correct Pulse Width Modulator (PWM)
Variable PWM Period
Frequency Generator
External Event Counter
Four Independent Interrupt Sources (TOV1, OCF1A, OCF1B, and ICF1)
Timer/Counter 2 (terdiri dari 8 bit)

Single Compare unit Counter


Clear Timer on Compare Match (Auto Reload)
Glitch-free, Phase Correct Pulse Width Modulator (PWM)
Frequency Generator
10-bit Clock Prescaler
Overflow and Compare Match Interrupt Sources (TOV2 and OCF2)
Allows clocking from External 32 kHz Watch Crystal Independent of the
I/O Clock
3. A.Timer : clock untuk timer berasal dari clock yang dipakai oleh sistem
(internal).Jika kita menggunakan kristal, clock untuk timer bersumber
dari kristal. Timer biasanya digunakan untuk pewaktuan
B.Counter: clock berasal dari pin Tn(T0,T1 atau TOSC1-TOSC2).
Digunakan untuk mencacah event dari luar(mencacah pulsa dsb)

4. Blok Diagram T/C 0

Penjelasan:

Untuk perhitungan timer 0 dapat menggunakan rumus :


Ttimer0 = Tosc*(256-TCNT0)*N

(8 Bit = 256 2^8)

Sebenarnya Timer 0 tidak dapat menghasilkan periode selama 1 detik karena keterbatasan jumlah
bit nya (8 bit = 256). Namun dengan penggunaan rumus dapat dilakukan pemanipulasian agar
timer 0 dapat menghasilkan periode waktu selama 1 detik. Dengan cara membuat timer selama
0.01 detik lalu dilakukan perulangan sebanyak 100 kali sehingga akan menghasilkan waktu 1
detik (0.01 detik x 100 kali = 1 detik).

5. Mode operasi timer/counter:


Mode normal: timer digunakan untuk menghitung saja, membuat delay,
menghitung selang waktu

Mode PWM: Memberikan bentuk gelombang phase correct PWM resolusi


tinggi. Mode phase correct PWM berdasarkan operasi dual slope. Counter
menghitung berulang-ulang dari bawah ke atas dan sebalikknya
CTC (Clear Time on Compare Match): Pada mode CTC, nilai timer yang ada
pada TCNTn akan dinolkan lagi jika TCNTn sudah sama dengan nilai yang
ada pada register OCRn, sebelumnya OCR diset dulu, karena timer 0 dan
2 maksimumnya 255, maka range OCR 0-255.
Fast PWM : memberikan pulsa PWM frekuensi tinggi. FAST PWM berbeda
dengan mode PWM lain, fast PWM berdasarkan operasi single loop.
Counter menghitung dari bawah hingga atas, lalu kembali lagi dari bawah.
6. Register pada timer/counter:
Register TCNT = register pencacah dari 0 sampai nilai maximum yg kita
tentukan.
Register TCCR =Untuk pengaturan mode operasi Timer/Counter
Register TIMSK =Untuk memilih Timer Counter mana yg aktif.
Register TIFR = Untuk mengetahui adanya interupsi akibat operasi
Counter Timer .
Register OC (output compare) = untuk menyimpan nilai pembanding dgn
nilai pd register TCNT.

7. Jelaskan rumus-rumus dari tiap mode operasi


- Frekuensi untuk CTC dapat dihitung dengan persamaan dibawah ini:
f OCn = frekuensi clock chip yang digunakan / (2 x prescaler x (1+OCRn))
- Frekuensi pin OCo untuk fast PWM dapat dihitung sesuai persamaan:
f OCnPWM = frekuensi clock chip yang digunakan/(prescaler x 256)
- Nilai frekuensi pada mode Phase Correct PWM dapat dihitung sesuai
persamaan:
f OCn Phase Correct PWM = frekuensi clock chip yang digunakan/
(prescaler x 510)
8. Perbedaan mode overflow dan mode compare match?
Normal Overflow
Dalam mode normal ini timer0 mencacah hitungan ke atas (counting up)
hingga mencapai 0xFF lalu akan terjadi overflow ketika hitungan kembali ke
0x00. Hal ini menyebabkan flag TOV0 secara otomatis menjadi set.
Interupsi akan terjadi jika interupsi timer0 overflow diaktifkan. Nilai
TCNT0 dapat ditentukan oleh programmer.
Normal Compare Match

Prinsip dasar normal overflow dan normal compare match memiliki


kemiripan. Flag OCF0 akan menjadi set yang mana akan menandakan
interupsi jika timer0 compare match diaktifkan ketika nilai TCNT0 sama
dengan nilai pada register OCR0 (nilai pada OCR0 dapat di-set oleh
programmer). TCNT0 akan terus menghitung hingga overflow dan
kemudian akan kembali menghitung dari nilai nol lagi.
9. sebutkan dan jelaskan macam-macam clock source untuk timer counter?
System Clock
T0 pin Falling Edge
T1 pin Rising Edge
10. Jelaskan perbedaan antara Timer/Counter dengan Watchdog timer!
Timer /Counter adalah suatu peripheral yang tertanam didalam
microcontroller yang berfungsi pewaktu. Dengan peripheral ini pengguna
microcontroller dapat dengan mudah menentukan kapan suatu perintah
dijalankan (delay), tentu saja fungsi timer tidak hanya untuk penundaan
perintah saja, timer juga dapat berfungsi sebagai oscilator, PWM, ADC, dan
lain-lain. Sedangkan watchdog timer merupakan salah satu jenis timer yang
terpisah dengan sistem CPU mikrokontroler sehingga tidak akan terpengaruh
bagaimanapun keadaan CPU bekerja. Watchdog timer digunakan untuk
mengatasi sebuah situasi dimana program yang sedang kita jalankan
mengalami kemacetan sehingga menyebabkan sistem berhenti bekerja atau
dapat dikatakan sebagai timer untuk mereset sendiri. 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.
11. Sebutkan 5 aplikasi dari Timer/Counter!
12. Jelaskan proses pemrograman T/C untuk ATMega 16pada software AVR!

Untuk perhitungan timer 1 dapat menggunakan rumus :


Ttimer 1 = Tosc*(65536-TCNT1)*N

(16 Bit = 65536 2^16)

Contoh penggunaan untuk timer 1 detik (Timer1 = 1 detik) dengan crystal 12 MHz
dan menggunakan skala clock 1024 maka akan menghasilkan :
Tosc = 1/Fosc = 1/12 = 0,083
1 = 0.083*(65536-TCNT1)*1024
TCNT = 53818 = D23A (Hexadesimal)

Berdasarkan perhitungan tersebut di dapatkan D23A, maka nilai tersebut harus di


inputkan ke register TCNT1 agar timer 1 bernilai 1 detik. Berikut ini contoh
penggunaan nya pada Codevision AVR:

Anda mungkin juga menyukai