Menggunakan interrupt pada ATMega

Interupsi adalah terjadinya penyelaan terhadap program utama, yang mengharuskan program utama berhenti dulu dan mendahulukan interupsi. Pada dasarnya untuk membuat sebuah interupt pada sebuah aplikasi kita bisa saja menggunakan statemen kondisi semacam if, while do dan kawan2nya.

Menggunakan interrupt pada ATMega iqi cloud

Jika kita berbicara tentang mikrokontroller, maka interupsi selain dapat memakai statemen kondisi bisa juga menggunakan fitur interrupt yang memang telah disediakan dalam mikrokontrol tersebut. Pada AVR keluarga ATMega misalnya, disediakan 3 interrupt yaitu INT0 – PIND.2, INT1 – PIND.3 dan INT2 pada PINB.3

Masing2 interrupt dikendalikan oleh register GICR dan GIFR yang dapat anda lihat berikut:

| INT1 | INT0 | INT2 |         |          |         |          |         |

jika INT1 diaktifkan maka nilai GICR berisi 0b10000000 atau 0x80, sementara jika yang aktif adalah INT2 maka nilainya adalah 0x20. Selain register tersebut INT0 dan INT1 memiliki 4 mode yang dikendalikan oleh register MCUCR.

|         |          |         |          |ISC11|ISC10| ISC01|ISC00|

ISC00-01 digunakan untuk menandai mode INT0 sementara ISC10-11 digunakan untuk menandai mode INT1.

 Mode  ISC – x1 ISC – x0
 Low mode  0 0
 Any Change  0 1
Falling edge  1 0
Rising edge 1 1

Sementara INT2 hanya memiliki mode falling edge dan rising edge karena hanya memiliki 1 bit ISC2 di register MCUSCR.

Rising Edge adalah kondisi dimana program akan menjalankan rutin interupsi ketika pada pin INT – X terjadi perubahan tegangan dari tegangan rendah ke tegangan tinggi, Falling Edge merupakan kebalikan dari rising edge yaitu interupsi aktif ketika terjadi perubahan dari tegangan tinggi ke tegangan rendah, Any Change tidak memperdulikan arah perubahan tegangan, dia akan menjalankan interupsi ketika terjadi perubahan tegangan, sementara Low Mode merupakan kondisi program akan menjalankan interupsi ketika nilai INT-X = 0.

Jika anda menggunakan codevision AVR anda bisa langsung mengeset interrupt mana yang akan anda aktifkan dengan mengklik tab External IRQ (Interrupt ReQuest) pada saat membuat new project, pilih INT yang akan dienable dan mode yang digunakan pada interrupt tersebut, selamat mencoba.

gambar dari sini

Tinggalkan komentar

(Note, links and most HTML attributes are not allowed in comments)

Situs ini menggunakan Akismet untuk mengurangi spam. Pelajari bagaimana data komentar Anda diproses.

Ingin produk/website Anda kami ulas? Silahkan klik tombol dibawah ini