Buku Timer Counter

16
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. b. Timer di-nol-kan saat proses pembandingan tercapai (compare match).

description

electrical

Transcript of Buku Timer Counter

Page 1: Buku Timer Counter

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.

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

c. Sebagai pembangkit gelombang PWM.

d. Sebagai pembangkit frekuensi.

e. Clock prescaler 10 bit.

f. 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

Page 2: Buku Timer Counter

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0FOC0 WGM00 COM01 COM00 WGM01 CS02 CS01 CS00

Gambar 1.5. Register TCCR0

Penjelasan untuk tiap bit-bitnya adalah sebagai berikut.

a. Bit 7 – FOC0: Force Output Compare

b. 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.

Tabel 1.1. Pengaturan Bit WGM01 dan WGM00

Mode WGM01(CTC0)

WGM00(PWM0)

Mode operasi Timer/Counter

TOP UpdateOCR0

BenderaTOV0

diset saat nilai

0 0 0 Normal 0xFF Immediate MAX

1 0 1 PWM, phase

correct

0xFF TOP BOTTOM

2 1 0 CTC OCR0 Immediate MAX

3 1 1 Fast PWM 0xFF TOP 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

Page 3: Buku Timer Counter

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.

c. 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.

Tabel 1.2. Pengaturan Bit COM01 dan COM00 Mode Non-PWM

COM01 COM00 Keterangan0 0 Operasi port normal, OC0 tidak dihubungkan.

0 1 Toggle OC0 saat proses pembandingan tercapai.

1 0 Clear OC0 saat proses pembandingan tercapai.

1 1 Set OC0 saat proses pembandingan tercapai.

Page 4: Buku Timer Counter

Tabel 1.3. Pengaturan Bit COM01 dan COM00 Mode Fast PWM

COM01 COM00 Keterangan0 0 Operasi port normal, OC0 tak dihubungkan.

0 1 Reserved

1 0 Clear OC0 saat proses pembandingan tercapai, set OC0

pada nilai TOP.

1 1 Set OC0 saat proses pembandingan tercapai, clear OC0

pada nilai TOP.

Tabel 1.4. Pengaturan Bit COM01 dan COM00 Mode Phase Correct PWM

COM01 COM00 Keterangan0 0 Operasi port normal, OC0 tak dihubungkan.

0 1 Reserved

1 0

Clear OC0 saat proses pembandingan tercapai, yaitu ketika

hitungan naik. Set OC0 saat proses pembandingan tercapai,

yaitu ketika hitungan turun.

1 1

Set OC0 saat proses pembandingan tercapai, yaitu ketika

hitungan naik. Clear OC0 saat proses pembandingan tercapai,

yaitu ketika hitungan turun.

d. Bit 2, 1, 0 – CS02, CS01, CS00: Clock Select

Ketiga bit tersebut untuk memilih sumber clock yang akan digunakan oleh

Timer/Counter0.

Tabel 1.5. Konfigurasi Bit Clock Select

CS02 CS01 CS00 Keterangan0 0 0 Tanpa sumber clock (timer/counter tidak difungsikan).

0 0 1 clkI/O /1 (tanpa prescaling)

0 1 0 clkI/O /8 (dari prescaler)

0 1 1 clkI/O /64 (dari prescaler)

1 0 0 clkI/O /256 (dari prescaler)

Page 5: Buku Timer Counter

1 0 1 clkI/O /1024 (dari prescaler)

1 1 0 Sumber clock eksternal pada pin T0. Clock pada falling

edge.

1 1 1 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.

b. Dua buah unit pembanding.

c. Dua buah register pembanding.

d. Satu buah input capture unit.

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

f. Dapat menghasilkan gelombang PWM.

g. Periode PWM yang dapat diubah-ubah.

h. Sebagai pembangkit frekuensi.

i. 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 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0COM1A1 COM1A0 COM1B

1COM1B0 FOC1A FOC1B WGM11 WGM10

Gambar 1.6. Register TCCR1A

Penjelasan untuk tiap bit-bitnya adalah sebagai berikut.

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

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

Page 6: Buku Timer Counter

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.

Tabel 1.6. Pengaturan Bit COM1Ax dan COM1Bx Mode Non-PWM

COM1A1/COM1B1/

COM1A0/COM1B0/

Keterangan

0 0 Operasi port normal, OC1A/OC1B tidak dihubungkan.

0 1 Toggle OC1A/OC1B saat proses pembandingan tercapai.

1 0 Clear OC1A/OC1B saat proses pembandingan tercapai

(set keluaran ke aras rendah).

1 1 Set OC1A/OC1B saat proses pembandingan tercapai (set

keluaran ke aras tinggi).

Tabel 1.7. Pengaturan Bit COM1Ax dan COM1Bx Mode Fast PWM

COM1A1/COM1B1/

COM1A0/COM1B0/

Keterangan

0 0 Operasi port normal, OC1A/OC1B tidak terhubung.

0 1

WGM13:0=15, 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.

1 0 Clear OC1A/OC1B saat proses pembandingan tercapai,

set OC1A/OC1B pada nilai TOP.

Page 7: Buku Timer Counter

1 1 Set OC1A/OC1B saat proses pembandingan tercapai,

clear OC1A/OC1B pada nilai TOP.

Tabel 1.8. Pengaturan Bit COM1Ax dan COM1Bx Mode Phase Correct PWM

COM1A1/COM1B1/

COM1A0/COM1B0/

Keterangan

0 0 Operasi port normal, OC1A/OC1B tak dihubungkan.

0 1

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.

1 0

Clear OC1A/OC1B saat proses pembandingan tercapai,

yaitu ketika hitungan naik. Set OC1A/OC1B saat proses

pembandingan tercapai, yaitu ketika hitungan turun.

1 1

Set OC1A/OC1B saat proses pembandingan tercapai,

yaitu ketika hitungan naik. Clear OC1A/OC1B saat

proses pembandingan tercapai, yaitu ketika hitungan

turun.

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

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

d. 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 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0ICNC1 ICES1 - WGM13 WGM12

ACS12 CS11 CS10

Gambar 1.7. Register TCCR1B

Page 8: Buku Timer Counter

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.

Tabel 1.9. Konfigurasi Bit Clock Select Register TCCR1B

CS12

CS11 CS10 Keterangan

0 0 0 Tanpa sumber clock (timer/counter tidak difungsikan).

0 0 1 clkI/O /1 (tanpa prescaling)

0 1 0 clkI/O /8 (dari prescaler)

0 1 1 clkI/O /64 (dari prescaler)

1 0 0 clkI/O /256 (dari prescaler)

1 0 1 clkI/O /1024 (dari prescaler)

1 1 0 Sumber clock eksternal pada pin T1. Clock pada falling edge.

1 1 1 Sumber clock eksternal pada pin T1. Clock pada rising edge.

b. 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.

Tabel 1.10. Pengaturan Bit WGM12, WGM11, dan WGM10

Mode WGM12 WGM11 WGM10 Mode OperasiTimer/Counter

TOPUpdateOCR1x

saat

BenderaTOV1

diset saat0 0 0 0 Normal 0xFFFF Immediate MAX1 0 0 1 PWM, Phase Correct, 8 bit 0x00FF TOP BOTTOM2 1 1 0 PWM, Phase Correct, 9 bit 0x01FF TOP BOTTOM3 1 1 1 PWM, phase correct, 10 bit 0x03FF TOP BOTTOM

4 1 1 1 CTC OCR1A Immediate MAX

5 1 1 1 Fast PWM, 8 bit 0x00FF TOP TOP

Page 9: Buku Timer Counter

6 1 1 1 Fast PWM, 9 bit 0x01FF TOP TOP7 1 1 1 Fast PWM, 10 bit 0x03FF TOP TOP8 1 1 1 PWM, Phase and Frequency

CorrectICR1 BOTTOM BOTTOM

9 1 1 1 PWM, Phase and Frequency Correct

OCR1A BOTTOM BOTTOM

10 1 1 1 PWM, Phase Correct ICR1 TOP BOTTOM11 1 1 1 PWM, Phase Correct OCR1A TOP BOTTOM12 1 1 1 CTC ICR1 Immediate MAX13 1 1 1 Reserved - - -14 1 1 1 Fast PWM ICR1 TOP TOP15 1 1 1 Fast PWM OCR1A 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.

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

c. Dapat mengahasilkan gelombang PWM.

d. Sebagai pembangkit frekuensi.

e. Clock prescaler 10 bit.

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

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

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0FOC2 WGM20 COM21 COM20 WGM21 CS22 CS21 CS20

Gambar 1.8. Register TCCR2

Penjelasan untuk tiap bit-bitnya adalah sebagai berikut.

a. Bit 7 – FOC2: Force Output Compare

b. 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

Page 10: Buku Timer Counter

dua tipe PWM. Berikut tabel pengaturan pada bit WGM untuk menghasilkan mode

tertentu. Pengaturan bit-bit ini dapat dilihat pada Tabel 2.12.

Tabel 1.11. Pengaturan Bit WGM21 dan WGM20

Mode WGM21(CTC2)

WGM20(PWM2)

Mode Operasi Timer/Counter

TOP UpdateOCR2

BenderaTOV2

diset saat nilai

0 0 0 Normal 0xFF Immediate MAX

1 0 1 PWM, Phase

Correct

0xFF TOP BOTTOM

2 1 0 CTC OCR2 Immediate MAX

3 1 1 Fast PWM 0xFF TOP BOTTOM

c. 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.

Tabel 1.12. Pengaturan Bit COM21 dan COM20 Mode Non-PWM

COM21 COM20 Keterangan0 0 Operasi port normal, OC2 tidak dihubungkan.

0 1 Toggle OC2 saat proses pembandingan tercapai.

1 0 Clear OC2 saat proses pembandingan tercapai.

1 1 Set OC2 saat proses pembandingan tercapai.

Tabel 1.13. Pengaturan Bit COM21 dan COM20 Mode Fast PWM

COM21

COM20 Keterangan

0 0 Operasi port normal, OC2 tak dihubungkan.

Page 11: Buku Timer Counter

0 1 Reserved

1 0 Clear OC2 saat proses pembandingan tercapai, set OC2

pada nilai TOP.

1 1 Set OC2 saat proses pembandingan tercapai, clear OC2

pada nilai TOP.

Tabel 1.14. Pengaturan Bit COM21 dan COM20 Mode Phase Correct PWM

COM21 COM20 Keterangan0 0 Operasi port normal, OC2 tak dihubungkan.

0 1 Reserved

1 0 Clear OC2 saat proses pembandingan tercapai, yaitu ketika

hitungan naik. Set OC2 saat proses pembandingan tercapai

yaitu, ketika hitungan turun.

1 1 Set OC2 saat proses pembandingan tercapai, yaitu ketika

hitungan naik. Clear OC2 saat proses pembandingan

tercapai, yaitu ketika hitungan turun.

d. 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.

Tabel 1.15. Pengaturan Bit Clock Select

CS02 CS01 CS00 Keterangan0 0 0 Tanpa sumber clock (timer/counter tidak difungsikan).0 0 1 clkI/O /1 (tanpa prescaling)0 1 0 clkI/O /8 (dari prescaler)0 1 1 clkI/O /64 (dari prescaler)1 0 0 clkI/O /256 (dari prescaler)1 0 1 clkI/O /1024 (dari prescaler)