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 000 sampai dengan 0FF. 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
NT
Ttimer0 OSC* 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].