Jelajahi eBook
Kategori
Jelajahi Buku audio
Kategori
Jelajahi Majalah
Kategori
Jelajahi Dokumen
Kategori
Nim
: D411 13 022
PENGERTIAN TIMER/COUNTER
Pada dasarnya, Timer/Counter merupakan seperangkat pencacah (counter) biner
yang terhubung langsung ke saluran data mikrokontroler, sehingga mikrokontroler bisa
membaca kondisi pencacah dan bila diperlukan mikrokontroler dapat pula merubah kondisi
pencacah tersebut. Seperti layaknya pencacah biner, saat sinyal detak (clock) yang
diberikan sudah melebihi kapasitas pencacah, maka pencacah akan memberikan sinyal
overflow atau limpahan. Sinyal overflow ini merupakan suatu hal yang penting dalam
pemakaian Timer/Counter. Terjadinya overflow ini akan dicatat dalam suatu register tertentu.
TIMER ATMEGA
AVR ATmega8535 memiliki tiga buah timer, yaitu Timer/Counter0 (8 bit),
Timer/Counter1 (16 bit), dan Timer/Counter2 (8 bit).
TIMER/COUNTER0
Timer/Counter0 adalah Timer/Counter 8 bit yang multifungsi. Fitur-fitur dari
Timer/Counter0 pada ATmega8535 adalah sebagai berikut.
a
Counter 1 kanal.
Bit 7
FOC0
Bit 6
WGM00
Bit 5
COM01
Bit 4
COM00
Bit 3
WGM01
Bit 2
CS02
Bit 1
CS01
Bit 0
CS00
Register TCCR0
WGM01
(CTC0)
WGM00
(PWM0)
Mode operasi
Timer/Counter
TOP
Update
OCR0
0
1
0
0
0
1
Normal
PWM, phase
0xFF
0xFF
Immediate
TOP
Bendera
TOV0
diset saat
nilai
MAX
BOTTOM
2
3
1
1
0
1
correct
CTC
Fast PWM
OCR0
0xFF
Immediate
TOP
MAX
MAX
Mode Normal : timer digunakan untuk menghitung saja, membuat delay, menghitung selang
waktu.
Mode PWM, phase correct : memberikan bentuk gelombang phase correct PWM resolusi
tinggi. Mode phase correct PWM berdasarkan operasi dualslope. Counter
menghitung berulang-ulang dari bottom ke max dan dari max ke bottom
Mode CTC : nilai timer yg ada pada TCNTn akan dinolkan lagi jika TCNTn sdh sama
dengan nilai yg ada pada register OCRn, sebelumnya OCR diset dulu, karena
timer 0 dan 2 maksimumnya 255 maka range OCR 0 255
Mode Fast PWM: memberikan pulsa PWM frekuensi tinggi. Fast PWM berdasarkan operasi
single slope. Counter menghitung dari bottom hingga top kemudian kembali
lagi menghitung berawal dari bottom.
Keterangan
Operasi port normal, OC0 tidak dihubungkan.
Toggle OC0 saat proses pembandingan tercapai.
Clear OC0 saat proses pembandingan tercapai.
Set OC0 saat proses pembandingan tercapai.
COM0
0
0
1
0
Keterangan
Operasi port normal, OC0 tak dihubungkan.
Reserved
Clear OC0 saat proses pembandingan tercapai, set OC0
COM00
0
1
Keterangan
Operasi port normal, OC0 tak dihubungkan.
Reserved
Clear OC0 saat proses pembandingan tercapai, yaitu ketika
CS01
0
0
1
1
0
0
1
1
CS00
0
1
0
1
0
1
0
Keterangan
Tanpa sumber clock (timer/counter tidak difungsikan).
clkI/O /1 (tanpa prescaling)
clkI/O /8 (dari prescaler)
clkI/O /64 (dari prescaler)
clkI/O /256 (dari prescaler)
clkI/O /1024 (dari prescaler)
Sumber clock eksternal pada pin T0. Clock pada falling
edge.
Sumber clock eksternal pada pin T0. Clock pada rising
edge.
TIMER/COUNTER1
Timer/Counter1 adalah Timer/Counter 16 bit yang memungkinkan program
pewaktuan lebih akurat. Fitur-fitur dari Timer/Counter1 ini adalah sebagai berikut.
a
Bit 5
COM1B
1
6
Bit 4
COM1B0
Bit 3
FOC1A
Bit 2
FOC1B
Bit 1
Bit 0
WGM11 WGM10
Register TCCR1A
Sebelum mengaktifkan OC1A dan OC1B, pin-pin yang bersangkutan tersebut harus
diatur sebagai keluaran atau DDR (Data Direction Register) dari pin tersebut diset
sebagai keluaran.
menyesuaikan pengaturan bit WGM13, WGM12, WGM11, dan WGM10 terlebih dahulu.
Pengaturan bit-bit tersebut dapat dilihat pada tabel berikut ini.
6
COM1A0/
COM1B0/
0
1
0
Keterangan
Operasi port normal, OC1A/OC1B tidak dihubungkan.
Toggle OC1A/OC1B saat proses pembandingan tercapai.
Clear OC1A/OC1B saat proses pembandingan tercapai
semua
COM1A0/
COM1B0/
0
Keterangan
Operasi port normal, OC1A/OC1B tak dihubungkan.
WGM13:0=9, toggle OC1A saat proses pembandingan
tercapai dan OC1B tidak terhubung. Untuk semua
pengaturan WGM1 yang lain, maka operasi port normal
Bit 6
ICES1
Bit 5
7
Bit 4
WGM13
Bit 3
Bit 2
WGM12 CS12
A
Register TCCR1B
Bit 1
CS11
Bit 0
CS10
Dari register tersebut, bit-bit yang berperan dalam pengaturan PWM adalah bit 4, bit 3,
bit 2, bit 1, dan bit 0.
a
9
CS1
2
0
0
0
CS1
0
0
1
0
Keterangan
Tanpa sumber clock (timer/counter tidak difungsikan).
clkI/O /1 (tanpa prescaling)
clkI/O /8 (dari prescaler)
0
1
1
1
1
1
0
0
1
1
1
0
1
0
1
10
WGM12
WGM11
WGM10
0
1
2
3
0
0
1
1
0
0
1
1
0
1
0
1
4
5
6
7
8
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
10
11
12
13
14
15
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
Mode Operasi
Timer/Counter
Normal
PWM, Phase Correct, 8 bit
PWM, Phase Correct, 9 bit
PWM, phase correct, 10 bit
CTC
Fast PWM, 8 bit
Fast PWM, 9 bit
Fast PWM, 10 bit
PWM, Phase and Frequency
Correct
PWM, Phase and Frequency
Correct
PWM, Phase Correct
PWM, Phase Correct
CTC
Reserved
Fast PWM
Fast PWM
0xFFFF
0x00FF
0x01FF
0x03FF
Update
OCR1x
saat
Immediate
TOP
TOP
TOP
Bendera
TOV1
diset saat
MAX
BOTTOM
BOTTOM
BOTTOM
OCR1A
0x00FF
0x01FF
0x03FF
ICR1
Immediate
TOP
TOP
TOP
BOTTOM
MAX
TOP
TOP
TOP
BOTTOM
OCR1A
BOTTOM
BOTTOM
ICR1
OCR1A
ICR1
ICR1
OCR1A
TOP
TOP
Immediate
TOP
TOP
BOTTOM
BOTTOM
MAX
TOP
TOP
TOP
TIMER/COUNTER2
Timer/Counter2 adalah Timer/Counter 8 bit yang multifungsi. Fitur-fitur untuk
Timer/Counter2 pada ATmega8535 adalah sebagai berikut.
a
Bit 6
WGM20
Bit 5
COM21
Bit 4
COM20
Bit 3
WGM21
Bit 2
CS22
Bit 1
CS21
Bit 0
CS20
Register TCCR2
11
Mode
WGM21
(CTC2)
WGM20
(PWM2)
Mode Operasi
Timer/Counter
TOP
Update
OCR2
Bendera
TOV2
diset saat
nilai
0
1
0
0
0
1
Normal
PWM, Phase
0xFF
0xFF
Immediate
TOP
MAX
BOTTOM
2
3
1
1
0
1
Correct
CTC
Fast PWM
OCR2
0xFF
Immediate
TOP
MAX
BOTTOM
Bit ini mengatur pin OC2 (Output Compare). Apabila kedua bit ini nol atau clear, maka
pin OC2 berfungsi sebagai pin biasa, tetapi apabila salah satu bit diset, maka fungsi pin
ini tergantung dari pengaturan bit pada WGM20 dan WGM21. Berikut daftar tabel
pengaturan bit COM21 dan COM20 sesuai pengaturan bit pada WGM20 dan WGM21.
12
13
Keterangan
Operasi port normal, OC2 tidak dihubungkan.
Toggle OC2 saat proses pembandingan tercapai.
Clear OC2 saat proses pembandingan tercapai.
Set OC2 saat proses pembandingan tercapai.
COM20
Keterangan
0
1
0
14
COM20
0
1
0
Keterangan
Operasi port normal, OC2 tak dihubungkan.
Reserved
Clear OC2 saat proses pembandingan tercapai, yaitu
ketika hitungan naik. Set OC2 saat proses pembandingan
Ketiga bit ini untuk memilih sumber clock yang akan digunakan oleh Timer/Counter2.
Pengaturan dari bit-bit ini dapat dilihat pada Tabel 2.16.
15
CS0
1
0
0
1
1
0
0
CS0
0
0
1
0
1
0
1
Keterangan
Tanpa sumber clock (timer/counter tidak difungsikan).
clkI/O /1 (tanpa prescaling)
clkI/O /8 (dari prescaler)
clkI/O /64 (dari prescaler)
clkI/O /256 (dari prescaler)
clkI/O /1024 (dari prescaler)