Anda di halaman 1dari 6
f = oe Perangkat Interupsi Mikrokontroler AVR Sasaran: Setelah membaca bab ini, peribaca akan mampu: * — Memahami arsitektur perangkat interupsi Mikrokontroler AVR. ¢. Mampu menggunakan fitur interupsi dalam berbagai aplikasi Pada subbab ini akan menguraikan secara lengkap arsitektur perangkat interupsi Mikrokontroler AVR. Pembahasan dimulai dengan suatu pengenalan konsep interupsi, dan lanjutkan dengan memberikan contoh aplikasi dengan bahasa assembly dan bahasa C. Pada bab ini lebih ditekankan pada interupsi yang berasal dati eksternal. Untuk interupsi timer, serial, ADC, dan lainnya akan dibabas secara lebih mendalam dalam bab berikutnya. 11.1 Arsitektur Perangkat Interupsi Mikrokontroler AVR lah dijelaskan seat membabas pesangkat interupsi mikrokontroler alu. Seperti pada MCS51, Mikrokontroler AVR juga memiliki Perangkat yang cara kerjanya sama, tetapi mempunyai tambahan beberapa fitur. Program yang dijalankan dengan cara interupsi dinamakan sebagai program layanan interupsi (ISR - Interrupe Service Routiné). Saat prosesor menjalankan ISR, pekerjaan yang sedang dikerjakan pada program Utama sementara ditinggallsan, Selesai menjalankan ISR, peosesor Kembali menjalankan program tama, seperti yang digambatkan dalam Gambar 111. Pengertian interupsi t MCS51 pada bab VII yang |: 240 EG) 48 Jam Kupas Tuntas Mikrokontroler MCS51 & AVR Tabel 11.2 Register mcuCcR Bit Nama Bit Keterangan 7] sila] Steep ode Select-> meni mode SLEEP MCU. ‘SM2 Smt 6 Smt | sao Sleep Mode 3 | sio i 0 0 Idle 0 0 7 ADC Noise Reduction ° 1 0 Power down o 1 1 Power save 1 ° Reserved . 1 0 Reserved 7 1 1 Standby 0 1 1 Extended Standby 1 ‘ SE ‘Sleep Enable. Bit inl untuk men r sebelum SLEEP djalankan, Setteh vows SLEEP dengan memberikan logika 1’ pada SE harus diberi logika’0', Perangkat Interupsi Mikrokontroler AVR t Bit_| Nama Bit 3] SCH | TarTupE Sense Corer TET ama eT interupsi ‘ake iene erste 1 diakttkan dengan pin eksternal INT4jika bit I pada SREG dan inferrupt Ten Na een sUaian pada GICR diset. Nila pada pin INT! disampel sebelum mendeteks! mmengheelleay transis atau toggle cpl, pulsa yang lebih panjang dar sikus clock akan interepal “2” Seba Interupsi, Pusa yang fein peek tidak djamin dapat membangktkan 1SC10 " 7 Isctt isc10 Keterangan 0 0 Level rendah pada INT1 membangkitkan permintaan interupsi 0 1 Perubahan logika pada INT1 membangkitkan permintaan interupsi 1 0 Transisi dari high ke low pada INT1 membangkitkan permintaan interupsi 1 1 Transisi darl low ke high pada INT1 membangkitkan permintaan interupsi T [1scor | Taterrapt Sense Contol TERT and BAT — Interupsi eksternal 0 diaktifkan dengan pin eksternal INTO jika bit I pada SREG dan interrupt ‘mask yang bersesuaian pada GICR diset. Nilai pada pin INT( disampel sebelum mendeteksi tepi. dika interupsitransisi atau toggle dipith, pulsa yang lebih panjang dari 1 siklus clock akan menghasilkan sebuah interupsl. Pulsa yang lebih pendek tidak dljamin dapat membanghitkan interupsi. Iscot Iscoc 0 1SCO0 Keterangan o o Level rendah pada INTO membangkitkan permintaan interupsi 0 1 Perubahan logika pada INTO membangkitkan permintaan interupst 1 0 dari high ke low pada INTO membangkitkan permintaan Interupsl 1 1 ‘Transfst darlfow ke high pada INTO membangkitkan permlntaan laterupst Transisi Bp 24 242° £1 El) 48 Jam Kupas Tuntas Mikrokontroler MCS51 & AVR Bit 7 3 2 1 0 eee woe [sore | even | Fone Hives Read Write aw AW F aOR AW Initial Valve ° ° ° See Bit Description Gambar 11.3 Register MCUCSR Tabel 11.3 Register MCUCSR Bit_|_Nama Bit Keterangan 6 | 1scz Interrupt Sense Control 2 Interupsi sinkron eksternal 2 diaktfkan dengan pin eksternal INT‘12 ka bit | pada SREG dan interrupt mask yang bersesuaian pada GICR diset. Pulsa INT2 harus lebih panjang dari syarat pulsa minimum sebesar 50 nanosekon akan membangkitkan interupsi. sca Keterangan 0 ‘Transisi dari high ke fow pada INT2 membangkitkan permintaan interupsi 1 ‘Transisi dari low ke high pada INT2 membangkitkan permintaan interupsi 11.1.2 General Interrupt Control Register (GICR) Register GICR mengatus pemilihan pengaktifan interupsi eksternal. Selengkapnya ditunjukkan pads Gambac 14 dan dijelaskan pada tabel 11.4. Bit Z : a 7 2 1 9. LE “ a ee Peadirite 7 we ° : a S rial Valve 9 2 ° cao 3 _ ° Gambar 11.4 Register GICR Tabel 11.4 Register GICR Bit_| Nama Bit lama Bit Keterangan 7 | itt | External interrupt Request] Enable SaatbitNT4 diset dan bit d napeeaas esa SREG juga diset, pin interupsi eksternal diaktihan- 7 wa Eterna Taegan ase bit ISC11 dan ISC10 di tabel 11.2. Saat bt INTO disct d Neuere esas Slide, pin interupsi eksternal diaktifkan- dan 1SCO0 di tabel 11.2, Perangkat Interupsi Mikrokontroler AVA io 243 it_| Nama Bit Keterangan 5 wra | External intemupt Request 2 Enable Saat bit NT2 diset dan bit dalam SREG juga diset, pin Interupsi eksteral diaktikan, Konfigurasinya telah dijelaskan pada bit ISC2 di tabel 11.3, 42 5 reserved iy WSEL | Interrupt Vector Select. vika IVSEL = 0 maka vektor Interupsi ditempatkan pada start address flash memory. ia SEL = 1 maka vektor interupsi ditempatkan pada aval bootloader dalam as memory. 0 CE Inferupt Vector Change Enable, cgunakan untuk mengaklan perubahan veltor interupsi, 11.1.3 General Interrupt Flag Register (GIFR) Register GIFR adalah penanda adanya interupsi eksternal. Selengkapnya ditunjukkan pada Gembar 11.5 dan dijelaskan pada tabel 11.5. E 7 6 5 4 3 2 [arene aire eet tite AW v RW a a Rg R 2 0 o oO oO 0 oO 0 Gambar 11.5 Register GIFR Tabel 11.5 Register GIFR yang berkaitan dengan interupsi eksternal Bit_| Nama Bit Keterangan. 7 | INTRA ‘External interrupt Flag 1 : ; Saat ada perubahan transisi atau logika pada pin INT1 menyulut permintaan interupsi, flag INTF1 menjadi’ Jika bit pada SREG dan bit INT4 pada GICR juga set, MCU akan lompat ke vektor interupsi yang bersesuaian. Flag ini di-clear saat ISR diekseskusi, ‘Suatu alternative, flag dapat di-clear dengan menulis logika ‘t° pada flag ini. Flag ini selalu di-clear saat INT1 dikonfigurasikan sebagai level interrupt. it Flag 0 fag INTFO menjadi’, Jika bit pada SREG dan bit INTO pada GICR juga sat, MCU shan Jompat ke vektor interupsi yang bersesuaian. Flag ini di cheat Gaat ISR divkseshusi, Suaty alternative, flag dapat di-clear dengan merulis fogika "t' pada flag inl Flag inl telalu di-clear saat INT1 dikonfigurasikan sebagai fuve! interrupt _ NUTFO menjadi’ Jika bit} pada SREG dan bit INT2 pada GICR juga set, MCU akan lompat ke vektor interupsi yang bersesuaian, Flag in Geelear saat ISA diekseskusl, Suatu alternative, flag dapat di-clear dengan menulis lagika "1 pada flag iol, 244 MIMD 48.Jor Kupas Tuntos Mirokontrler MCSS1 & AVR 11.2 Aplikasi Menggunakan Perangkat Interupsi ‘Contoh program sederhana berikut adalah menggunakan interupsi eksternal 0 (INTO) 1 ‘yang pada saat menerima transisi dari high ke low akan memanggil ISR ext_int0. Setelah melakukg ini maka akan kembali ke program utama di mana lokasi memori program yang ditinggalkan, Bahasa Keterangan Bahasa C (dengan Code Vision) " “include “m826etiine™ File pustaka ATMEGA32 include File pustaka ATMEGAS2 289 00000 ‘Alamat awal memori program include File pustaka delay Lompat ke main interrupt [EXT_INTO] void ext_ } Rutin layanan interups! — int_isr(void) 0 ‘Alamat vektor interupsieksteral 0 amo Port=0001010101 simp ext_intd ort¢=0800000000 main: Menentukan isi Stack Pointer PortC=0b01010101, {316 ow RAMEND) ‘dengan address terakhir RAM PortC=0b00000000 out SPL (RAMEND) Udi r16,high(RAMEND) Untuk ATMega32 a5Fh void main(voig) { out SPH, Inisialisasi Port C PORTC=0300; Inisiaisasi Port C Port C sebagai ouput DDRC=O4FF; Port C sebagai ouput ti 00FF Inisiaisasi Port D PORTD=0100; Inisiaisasi Port tdi 17,0100 Port C sebagai input INTO pada | DDRD=0x00; i Bia pots Pat sobon input INTO pada out Pon 17 out re 18 AXtikaninterups GICRI-Ox40 sialissiinerps ckstomal | ut Ponta . MCUCR=0x02; Neon ‘seat INTO= Natit MCUCSR=0x00; ‘Mode: Falling Edge 1 17,0001000000 Mode : faling edge GIFR=0140; Enable interupsi oa GICR A? fasm(ser) ‘ch t7,0200000010 Aktien interpsi @& MOUOR AT Selama belum ada interupsi tunggu 6 sii while (1) Scans itenps: : k song: a 0p ) Ponc=0001010101

Anda mungkin juga menyukai