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