Anda di halaman 1dari 11

Nama

: Hizkia Glorius Soma

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.

Timer di-nol-kan saat proses pembandingan tercapai (compare match).

Sebagai pembangkit gelombang PWM.

Sebagai pembangkit frekuensi.

Clock prescaler 10 bit.

Sumber interupsi dari compare match (OCF0) dan overflow (TOV0).


Pengaturan Timer/Counter0 diatur oleh TCCR0 (Timer/Counter Control Register0)

yang dapat dilihat pada Gambar 1.7

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

Penjelasan untuk tiap bit-bitnya adalah sebagai berikut.


a

Bit 7 FOC0: Force Output Compare

Bit 6,3 WGM01:WGM00: Waveform Generation Unit


Bit ini mengontrol kenaikan dari counter, sumber dari nilai maksimum counter, dan tipe
dari jenis timer/counter yang dihasilkan, yaitu mode normal, clear timer, mode compare
match, dan dua tipe dari PWM (Pulse Width Modulation). Berikut ini tabel pengaturan
pada bit WGM01 dan WGM00 untuk menghasilkan mode tertentu.

Pengaturan Bit WGM01 dan WGM00


Mode

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.

Bit 5, 4 COM01:COM00: Compare Match Output Mode


Bit ini mengontrol pin OC0 (pin Output Compare). Apabila kedua bit ini nol atau clear,
maka pin OC0 berfungsi sebagai pin biasa. Bila salah satu bit set, maka fungsi pin ini
tergantung pada pengaturan bit pada WGM00 dan WGM01. Berikut daftar tabel
pengaturan bit COM01 dan COM00 sesuai pengaturan bit pada WGM00 dan WGM01.

Pengaturan Bit COM01 dan COM00 Mode Non-PWM


COM01 COM00
0
0
0
1
1
0
1
1

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.

Pengaturan Bit COM01 dan COM00 Mode Fast PWM


COM0
1
0
0
1

COM0
0
0
1
0

Keterangan
Operasi port normal, OC0 tak dihubungkan.
Reserved
Clear OC0 saat proses pembandingan tercapai, set OC0

pada nilai TOP.


Set OC0 saat proses pembandingan tercapai, clear OC0
pada nilai TOP.

Pengaturan Bit COM01 dan COM00 Mode Phase Correct PWM


COM01
0
0

COM00
0
1

Keterangan
Operasi port normal, OC0 tak dihubungkan.
Reserved
Clear OC0 saat proses pembandingan tercapai, yaitu ketika

hitungan naik. Set OC0 saat proses pembandingan tercapai,


yaitu ketika hitungan turun.
Set OC0 saat proses pembandingan tercapai, yaitu ketika

hitungan naik. Clear OC0 saat proses pembandingan tercapai,


yaitu ketika hitungan turun.

Bit 2, 1, 0 CS02, CS01, CS00: Clock Select


Ketiga bit tersebut untuk memilih sumber clock yang akan digunakan oleh
Timer/Counter0.

Konfigurasi Bit Clock Select


CS02
0
0
0
0
1
1
1
1

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

Desain 16 bit, sehingga memungkinkan untuk menghasilkan PWM 16 bit.

Dua buah unit pembanding.

Dua buah register pembanding.

Satu buah input capture unit.

Timer di-nol-kan saat proses pembandingan tercapai (match compare).

Dapat menghasilkan gelombang PWM.

Periode PWM yang dapat diubah-ubah.

Sebagai pembangkit frekuensi.

Empat buah sumber interupsi (TOV1, OCF1A, OCF1B dan ICF1).


Pengaturan Timer/Counter1 diatur oleh TCCR1A (Timer/Counter1 Control Register

A) dan TCCR1B (Timer/Counter1 Control Register B).


Bit 7
Bit 6
COM1A1 COM1A0

Bit 5
COM1B
1
6

Bit 4
COM1B0

Bit 3
FOC1A

Bit 2
FOC1B

Bit 1
Bit 0
WGM11 WGM10

Register TCCR1A

Penjelasan untuk tiap bit-bitnya adalah sebagai berikut.


a

Bit 7, 6 COM1A1, COM1A0: Compare Output Mode untuk kanal A

Bit 5, 4 COM1B1, COM1B0: Compare Output Mode untuk kanal B


COM1A1, COM1A0, COM1B1, dan COM1B0 mengatur pin pembanding keluaran
(Output Compare pins), yaitu pin OC1A dan OC1B. Jika salah satu atau keduanya dari
COM1A1 dan COM1A0 diset 1, maka OC1A akan terhubung (aktif) sebagai pin
keluaran. Begitu juga jika salah satu atau keduanya dari COM1B1 dan COM1B0 diset 1,
maka OC1B akan terhubung (aktif) sebagai pin keluaran.

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.

Pengaturan COM1A1, COM1A0, COM1B1, dan COM1B0 harus

menyesuaikan pengaturan bit WGM13, WGM12, WGM11, dan WGM10 terlebih dahulu.
Pengaturan bit-bit tersebut dapat dilihat pada tabel berikut ini.
6

Pengaturan Bit COM1Ax dan COM1Bx Mode Non-PWM


COM1A1/
COM1B1/
0
0
1
1

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

(set keluaran ke aras rendah).


Set OC1A/OC1B saat proses pembandingan tercapai (set
keluaran ke aras tinggi).

Pengaturan Bit COM1Ax dan COM1Bx Mode Fast PWM


COM1A1/ COM1A0/
Keterangan
COM1B1/ COM1B0/
0
0
Operasi port normal, OC1A/OC1B tidak terhubung.
WGM13:0=15, toggle OC1A saat proses pembandingan
0

tercapai dan OC1B tidak terhubung. Untuk

semua

pengaturan WGM1 yang lain, maka operasi port normal


1
1

atau OC1A/OC1B tidak terhubung.


Clear OC1A/OC1B saat proses pembandingan tercapai,

set OC1A/OC1B pada nilai TOP.


Set OC1A/OC1B saat proses pembandingan tercapai,
clear OC1A/OC1B pada nilai TOP.

Pengaturan Bit COM1Ax dan COM1Bx Mode Phase Correct PWM


COM1A1/
COM1B1/
0

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

atau OC1A/OC1B tidak terhubung.


Clear OC1A/OC1B saat proses pembandingan tercapai,
1

yaitu ketika hitungan naik. Set OC1A/OC1B saat proses


pembandingan tercapai, yaitu ketika hitungan turun.
Set OC1A/OC1B saat proses pembandingan tercapai,

yaitu ketika hitungan naik. Clear OC1A/OC1B saat


proses pembandingan tercapai, yaitu ketika hitungan
turun.

Bit 3, 2 FOC1A, FOC1B: Force Output Compare untuk kanal A dan B.


Bit ini harus diset 0 ketika TCRR1A dioperasikan sebagai fungsi PWM.

Bit 1, 0 WGM11, WGM10: Waveform Generation Mode


Bit-bit ini satu kesatuan dengan WGM13, WGM12 yang terdapat pada register TCCR1B.
Bit-bit tersebut mengatur urutan penghitungan dari counter, menentukan nilai TOP (nilai
maksimal dari pengaturan counter), dan menentukan pilihan tipe pengoperasian
Timer/Counter1.
Bit 7
ICNC1

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

Bit 2, 1, 0 CS12, CS11, CS00: Clock Select


Ketiga bit tersebut untuk memilih sumber clock yang akan digunakan oleh
Timer/Counter1.

9
CS1
2
0
0
0

Konfigurasi Bit Clock Select Register TCCR1B


CS11
0
0
1

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

clkI/O /64 (dari prescaler)


clkI/O /256 (dari prescaler)
clkI/O /1024 (dari prescaler)
Sumber clock eksternal pada pin T1. Clock pada falling edge.
Sumber clock eksternal pada pin T1. Clock pada rising edge.

Bit 4, 3 WGM13, WGM12: Waveform Generation Mode


Bit-bit ini satu kesatuan dengan bit WGM11 dan bit WGM10 yang terdapat pada register
TCCR1A. Seperti pada bit WGM11 dan bit WGM10, bit WGM13 dan bit WGM12
berfungsi mengatur urutan penghitungan dari counter, menentukan nilai TOP (nilai
maksimal dari pengaturan counter), dan menentukan pilihan tipe pengoperasian
Timer/Counter1. Pengaturan bit-bit ini dapat dilihat pada Tabel 2.10.

10

Pengaturan Bit WGM12, WGM11, dan WGM10


Mode

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

Sebagai counter 1 kanal.

Timer di-nol-kan saat proses pembandingan tercapai (match compare).

Dapat mengahasilkan gelombang PWM.

Sebagai pembangkit frekuensi.

Clock prescaler 10 bit.

Sumber interupsi dari compare match (OCF0) dan overflow (TOV0).


Pengaturan Timer/Counter2 diatur oleh TCCR2 (Timer/Counter2 Control Register).
Bit 7
FOC2

Bit 6
WGM20

Bit 5
COM21

Bit 4
COM20

Bit 3
WGM21

Bit 2
CS22

Bit 1
CS21

Bit 0
CS20

Register TCCR2

Penjelasan untuk tiap bit-bitnya adalah sebagai berikut.


a

Bit 7 FOC2: Force Output Compare

Bit 6,3 WGM21, WGM20: Waveform Generation Unit


Bit ini mengatur kenaikan dari counter, sumber nilai maksimum counter, dan tipe jenis
timer/counter yang dihasilkan, yaitu mode normal, clear timer, mode compare match, dan
dua tipe PWM. Berikut tabel pengaturan pada bit WGM untuk menghasilkan mode
tertentu. Pengaturan bit-bit ini dapat dilihat pada Tabel 2.12.

11

Pengaturan Bit WGM21 dan WGM20

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 5, 4 COM21, COM20: Compare Match Output Mode

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

Pengaturan Bit COM21 dan COM20 Mode Non-PWM


COM21 COM20
0
0
0
1
1
0
1
1

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.

Pengaturan Bit COM21 dan COM20 Mode Fast PWM


COM2
1
0
0
1
1

COM20

Keterangan

0
1
0

Operasi port normal, OC2 tak dihubungkan.


Reserved
Clear OC2 saat proses pembandingan tercapai, set OC2

pada nilai TOP.


Set OC2 saat proses pembandingan tercapai, clear OC2
pada nilai TOP.

14

Pengaturan Bit COM21 dan COM20 Mode Phase Correct PWM


COM2
1
0
0
1

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

tercapai yaitu, ketika hitungan turun.


Set OC2 saat proses pembandingan tercapai, yaitu ketika
hitungan naik. Clear OC2 saat proses pembandingan
tercapai, yaitu ketika hitungan turun.

Bit 2, 1, 0 CS22, CS21, CS20: Clock Select

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

Pengaturan Bit Clock Select


CS02
0
0
0
0
1
1

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)

Anda mungkin juga menyukai