• Tidak ada hasil yang ditemukan

BAB II DASAR TEORI

2.2. Mikrokontroler ATMEGA8535

2.2.6. Timer dan Counter

Atmega8535 memiliki 3 modul timer yang terdiri dari 2 buah timer/counter 8-bit dan 1 buah timer/counter 16-8-bit. Ketiga modul timer/counter ini dapat diatur dalam mode yang berbeda secara individu dan tidak saling mempengaruhi satu sama lain. Selain itu semua timer/counter dapat difungsikan sebagai sumber interupsi dan register tertentu untuk mengatur mode dan cara kerjanya. Masing-masing timer/counter ini memiliki register tertentu yang digunakan untuk mengatur mode dan cara kerjanya. Tetapi ada 2 register yang digunakan secara bersama-sama, yaitu register TIMSK dan register TIFR.

2.2.6.1 Timer dan Counter Interrupt Mask Register (TIMSK)

Gambar 2.5Register TIMSK[2]

 Bit 7 OCIE2 : Timer/Counter 2 Output Compare Match Interrupt Enabel OCIE2 digunakan untuk mengaktifkan interupsi Output Compare Match Timer/Counter 2

 Bit 6 – TOIE2 : Timer/Counter 2 Overflow Interrupt Enabel

TOIE2 digunakan untuk mengaktifkan interupsi Overflow Timer/Counter 2

 Bit 5 – TICIE1 : Timer/Counter 1 Capture Interrupt Enabel

TICIE1 diguakan untuk mengaktifkan interupsi input Capture Timer/Counter 1.

OCIE1A digunakan untuk mengaktifkan interupsi output Compare A Match Timer/Counter 1.

 Bit 3 – OCIE1B : Timer/Counter 1 Output Compare B Match Interrupt Enable OCIE1B digunakan untuk mengaktifkan interupsi output Compare B Match Timer/Counter 1.

 Bit 2 – TOIE1 : Timer/Counter 1 Overflow Interrupt Enabel

TOIE1 digunakan untuk mengaktifkan interupsi Overflow Timer/Counter 1

 Bit 1 – OCIE0 : Timer/Counter 0 Output Compare Match Interrupt Enable OCIE0 digunakan untuk mengaktifkan interupsi output Compare Match Timer/Counter 0.

 Bit 0 – TOIE0 : Timer/Counter 0 Overflow Interrupt Enabel

TOIE2 digunakan untuk mengaktifkan interupsi Overflow Timer/Counter 0.

2.2.6.2 Timer dan Counter Interrupt Flag Register (TIFR)

Gambar 2.6Register TIFR[2]

TIFR merupakan register yang digunakan untuk mengetahui apakah terjadi permintaan interupsitimet/counter atau tidak. Jika bernilai ‘1’ berarti terdapat permintaan interupsi, dan jika layanan interupsi diaktifkan maka program akan melompat ke alamat vektor interupsi yang sesuai.

 Bit 7 – OCF2 : Timer/Counter 2 Output Compare Match Flag

OCF2 adalah bendera yang menunjukkan adanya permintaan interupsi Output Compare Match Timer/Counter 2.

 Bit 6 – TOV2 : Timer/Counter 2 Overflow Flag

TOV2 adalah bendera yang menunjukkan adanya permintaan interupsi Overflow Timer/Counter 2.

 Bit 5 – ICF1 : Timer/Counter 1 Input Capture Flag

ICF1 adalah bendera yang menunjukkan adanya permintaan interupsi Input Capture Timer/Counter 1.

OCF1A adalah bendera yang menunjukkan adanya permintaan interupsi Output Compare A Match Timer/Counter 1.

 Bit 3 - OCF1B : Timer/Counter 1 Output Compare B Match Flag

OCF1B adalah bendera yang menunjukkan adanya permintaan interupsi Output Compare B Match Timer/Counter 1.

 Bit 2 – TOV1 : Timer/Counter 1 Overflow Flag

TOV1 adalah bendera yang menunjukkan adanya permintaan interupsi Overflow Timer/Counter 1.

 Bit 1 – ICF0 : Timer/Counter 0 Input Capture Flag

ICF0 adalah bendera yang menunjukkan adanya permintaan interupsi Input Capture Timer/Counter 0.

 Bit 0 – TOV0 : Timer/Counter 0 Overflow Flag

TOV0 adalah bendera yang menunjukkan adanya permintaan interupsi Overflow Timer/Counter 0.

2.2.6.3 Timer dan Counter 0

Timer/Counter 0 merupakan modul timer/counter 8-bit yang dapat berfungsi sebagai pencacah tunggal, pembangkit PWM 8-bit, pembangkit frekuensi, pencacah kejadian eksternal, pembangkit interupsi overflow dan pembangkit interupsi output compare match.

1) Mode 0

Berfungsi sebagai pencacah tunggal yang dapat mencacah dari 000 sampai dengan 0FF. Mode ini disebut dengan mode normal.

2) Mode 1

Berfungsi sebagai phase correct PWM (PCP). 3) Mode 2

Berfungsi sebagai Clear Timer on Compare Match (CTC). 4) Mode 3

Berfungsi sebagai sebagai Fast PWM. Mode ini hampir sama dengan mode phase correct PWM.

2.2.6.3.1 Timer dan Counter 0 Control Register (TCCR0)

Gambar 2.7Register TCCR0[2]

Bit 6 – WGM00 : Waveform Generation Mode

WGM00 dan WGM01 bersama-sama digunakan untuk menentukan mode pembangkitan runtun timer/counter 0 seperti terlihat pada tabel 2.2 berikut:

Tabel 2.2Mode Timer/Counter 0

Bit 2:0 – CS02:00 : Clock Select

CS02, CS01, dan CS00 berfungsi untuk mengatur skala sumber clock yang digunakan oleh timer/counter 0 seperti terlihat pada tabel 2.3 berikut :

Tabel 2.3 Skala Clock Timer/Counter 0

Jika nilai clock Selwct (2:0) bernilai :

0 : sumber clock tidak terhubung ke timer/counter 0 sehingga timer/counter 0 tidak bekerja.

1 : clock timer/counter 0 sama dengan frekuensi kristal yang digunakan (skala clock 1).

2 : clock timer/counter 0 sama dengan 1/8 frekuensi kristal yang digunakan (skala clock 8).

3 : clock timer/counter 0 sama dengan 1/64 frekuensi kristal yang digunakan (skala clock 64).

4 : clock timer/counter 0 sama dengan 1/256 frekuensi kristal yang digunakan (skala clock 256).

5 : clock timer/counter 0 sama dengan 1/1024 frekuensi kristal yang digunakan (skala clock 1024).

6 : clock timer/counter 0 berasal dari eksternal clock yang terhubung ke pin T0 dan bekerja pada transisi turun (falling edge).

7 : clock timer/counter 0 berasal dari eksternal clock yang terhubung ke pin T0 dan bekerja pada transisi naik (rising edge).

2.2.6.3.2 Timer dan Counter Register 0 (TCNT0)

Gambar 2.8Register TCNT0[2]

Register TCNT0 berfungsi untuk menyimpan data cacahan timer/counter 0. karena ukuran register TCNT0 hanya 8-bit, maka hanya dapat melakukan cacahan dari 0x00 – 0xFF atau 0 – 255.

Pengaturan interval waktu timer dapat dilakukan melalui persamaan 2.1 di bawah.

TCNT

N

T

Ttimer0OSC* 256 0 * ...(2.1)

Dimana TOSC = periode osilator N = Prescaler

2.2.6.4 Timer dan Counter 1

Timer/counter 1 merupakan modul timer/counter 16-bit yang dapat berfungsi sebagai pencacah tunggal, pembangkit PWM 16-bit, pembangkit frekuensi, pencacah event

eksternal, dan sebagai pembangkit interupsi yang terdiri dari 4 sumber pemicu yaitu 1 interupsi overflow, 2 interupsi output compare match dan 1 interupsi input capture.

2.2.6.5 Timer dan Counter 2

Timer/counter 2 merupakan modul timer/counter 8-bit yang dpat berfungsi sebagai pencacah tunggal, pembangkit PWM 8-bit, pembangkit frekuensi, pencacah event eksternal, pembangkit interupsi overflow dan pembangkit interupsi output compare match.

Mode kerja timer/counter 2 sama persis dengan mode kerja timer/counter 0, hanya saja pada timer/counter 2 memiliki satu fitur tambahan yaitu asynchronous mode. Perbedaan antara synchronous dan asynchronous hanya terletak pada sumber clock saja. Jika pada mode synchronous seperti yang digunakan pada timer/counter 0 dan timer/counter 1 memiliki sumber clock yang berasal dari kristal yang terhubung melalui pin XTAL1 dan XTAL2 maka pada mode asynchronous memiliki sumber clock eksternal yang terhubung melalui pin TOSC1 dan TOSC2[3].

Dokumen terkait