Tutorial : AVR Interrupt part-1

Dalam mikrokontroler, pelaksanaan suatu program terjadi secara berurutan, setiap perintah dijalankan satu per satu; prosesor hanya menangani satu tugas pada satu waktu. Pada setiap clock suatu operasi baru dilakukan.

Interupsi (interrupt) adalah peristiwa internal atau eksternal asinkron dalam alur program utama pada saat terjadi sesuatu yang memicu (trigger) untuk mendapatkan perhatian dari mikrokontroler.
Pada saat terjadi interupsi, untuk sementara mikrokontroler akan menjeda urutan perintah yang sedang dieksekusi, ia akan melaksanakan dulu perintah yang ada pada rutin interupsi (ISR - interrupt service routine), kemudian bila telah selesai, maka mikrokontroler akan melanjutkan kembali eksekusi perintah yang tadi sempat tertunda.

Biasanya, saat sebuah mikrokontroler berkomunikasi dengan dunia luar, ia harus menunggu peristiwa eksternal  terjadi sebelum mengambil suatu tindakan. Katakanlah misalnya, kita memiliki sebuah tombol dan LED yang terhubung ke mikrokontroler dan tugas dia adalah untuk menyalakan LED ketika kita menekan tombol. Apa yang mikro akan lakukan? Mikrokontroler akan terus memeriksa apakah tombol sudah ditekan atau belum dan jika sudah, ia akan mengambil tindakan. Nah, ini berarti bahwa mikro akan tetap dalam keadaan sibuk-tunggu, padahal mungkin ia juga memiliki tugas lain yang seharusnya bisa ia dilakukan.

Dengan menggunakan teknik polling,  maka ketika tombol ditekan,  ia akan menghasilkan sinyal hardware, sebuah interupsi eksternal untuk mikrokontroler dan akan ditanggapi dengan cepat bahkan mikro akan meninggalkan apa yang dilakukannya untuk masuk ke ISR dan melaksanakan instruksi didalamnya. Tidak ada lagi acara mikro yang melamun sambil menunggu tombol ditekan...

Ada beberapa sumber interrupt yang masing-masing memiliki ISR yang berbeda. Untuk mengetahui sumber interrupt  mana yang memicu, maka mikrokontroller membutuhkan sebuah tabel ISR yang disebut tabel vektor. Hal ini disebabkan  karena urutan instruksi yang harus dilaksanakan oleh mikro ditunjukan berdasarkan Program Counter (PC), penunjuk yang menunjukkan instruksi berikutnya yang akan dijalankan. Maka mikrokontroler harus melihat dilokasi mana dalam memori,  program ISR tersebut berada, agar ia bisa melompat sana.

Berdasarkan tabel memori program diatas, kita bisa melihat ketika terjadi sebuah interrupt, mikro akan mencari di tabel vector lokasi ISR dari interrupt tersebut, selanjutnya ia akan lompat ke lokasi ISR itu, kemudian bisa telah selesai ia akan kembali ke program memory yang sempat ia tinggalkan tadi.

Untuk lebih jelasnya bisa dilihat dalam datasheet dari mikrokontroler tersebut yang akan menjelaskan sumber interupsi yang tersedia, tabel interrupt vector dan register yang terkait.


Selamat belajar...!

1 komentar:

  1. Men's and women's new 3D implant grade titanium earrings
    Women's and women's new 3D titanium 170 welder implant black titanium fallout 76 grade titanium trekz titanium pairing earrings. · Men's and women's new 3D implant grade titanium quartz titanium earrings. · Women's infiniti pro rainbow titanium flat iron and women's new 3D implant

    BalasHapus

author
Embedtronix
Build Your Embedded System. Belajar bareng ngoprek Microcontroller, Arduino, TPLink, GLiNet dan ilmu Microelectronic lainnya.