TimerCounter Mikrokontroler AVR ATmega32

2.2.3. Interupsi

Interupsi adalah suatu kondisi dimana mikrokontroler akan berhenti sementara dari program utama untuk melayani instruksi-instruksi pada interupsi kemudian kembali mengerjakan instruksi program utama setelah instruksi-instruksi pada interupsi selesai dikerjakan. Table 2.1 Hubungan PIN dan Interupsi Jenis interupt PIN pada Atemega 32 INT0 PORTD.2 INT1 PORTD.3 INT2 PORTB.2 ATmega32 menyediakan tiga interupsi eksternal yaitu, INT0, INT1, dan INT2. Masing- masing interupsi tersebut terhubung dengan pin ATmega32 seperti ditunjukan pada Tabel 2.1. Interupsi eksternal bisa dilakukan dengan memberikan logika 0 atau perubahan logika rissing edge dan falling edge pada pin interupsi yang bersangkutan[8].

2.2.4. TimerCounter

TimerCounter pada mikrokontroler AVR dapat digunakan untuk melakukan pencacahan waktu seperti pada jam digital maupun untuk menghasilkan sinyal PWM Pulse Width Modulation yakni sinyal kotak dengan frekuensi dan duty cycle yang nilainya bisa diatur. Atmega32 memiliki tiga unit TimerCounter yaitu TimerCounter 0 8 bit, TimerCounter 1 16 bit, dan TimerCounter 2 8 bit[9]. TIMERCOUNTER 0 Fitur-fitur yang dimiliki: a Satu buah unit Compare Counter Unit ini akan meng-count dan meng-compare b Clear timer pada saat compare match Auto reload c Phase Correct PWM yang bebas glitch d Frequency generator e External event counter f Prescaler clock hingga 10 bit g Membangkitkan interupsi saat timer overflow dan atau compare match Perhitungan overflow interrupt sebagai pembangkit PWM ditunjukan pada persamaan 2.3, 2.4, dan 2.5 berikut: 2.1 2.2 2.3 Keterangan : f = frekuensi yang digunakan untuk eksekusi program T = periode N = prescaller yang digunakan OCR = nilai cacahan pulsa Pulse = lebar pulsa Berikut merupakan mode-mode operasi timer : a. Mode normal, timer digunakan untuk menghitung saja, membuat delay, dan mengitung selang waktu[8]. Gambar 2.3.Mode Phase Correct PWM [8] b. Mode phase correct PWM PCP, digunakan untuk menghasilkan sinyal PWM dimana nilai register counter TCNT0 yang mencacah naik dan turun secara terus menerus akan selalu dibandingakan dengan register pembanding OCR0. Hasil perbandingan register TCNT0 dan OCR0 digunakan untuk membangkitkan sinyal PWM yang dikeluarkan pada OC0 seperti ditunjukan Gambar 2.4[9]. c. CTC Clear timer on compare match, register counter TCNT0 akan mencacah naik kemudian di-reset atau kembali menjadi 0x00 pada saat nilai TCNT0 sama dengan OCR0. Sebelumnya OCR diset dulu, karena timer 0 dan 2 maksimumnya 255, maka range OCR 0-255[9]. d. Fast PWM, mode ini hampir sama dengan mode phase correct PWM, hanya perbedaannya adalah register counter TCNT0 mencacah naik saja dan tidak pernah mencacah turun seperti terlihat pada Gambar 2.7[9]. Gambar 2.4.Mode Fast PWM [8]

2.2.5. Komunikasi Serial USART