Sabtu, 13 April 2013

INTERRUPT

PENGERTIAN DEFINISI INTERRUPT adalah Proses yang dilakukan oleh mikrokontroler Interrupt Service Routine

Interrupt adalah suatu kejadian atau peristiwa yang menyebabkan mikrokontroler berhenti sejenak untuk melayani interrupt tersebut. Program yang dijalankan pada saat melayani interrupt disebut Interrupt Service Routine. Analoginya adalah sebagai berikut, seseorang sedang mengetik laporan, mendadak telephone berdering dan menginterrupsi orang tersebut sehingga menghentikan pekerjaan mengetik dan mengangkat telephone. Setelah pembicaraan telephone yang dalam hal ini adalah merupakan analogi dari Interrupt Service Routine selesai maka orang tersebut kembali meneruskan pekerjaanya mengetik. Demikian pula pada sistem mikrokontroler yang sedang menjalankan programnya, saat terjadi interrupt, program akan berhenti sesaat, melayani interrupt tersebut dengan menjalankan program yang berada pada alamat yang ditunjuk oleh vektor dari interrupt yang terjadi hingga selesai dan kembali meneruskan program yang terhenti oleh interrupt tadi. Seperti yang terlihat Gambar dibawah ini, sebuah program yang seharusnya berjalan terus lurus, tiba-tiba terjadi interrupt dan harus melayani interrupt tersebut terlebih dahulu hingga selesai sebelum ia kembali meneruskan pekerjaannya.













Proses yang dilakukan oleh mikrokontroler saat melayani interrupt adalah sebagai berikut:
Instruksi terakhir yang sedang dijalankan diselesaikan terlebih dahulu
Program Counter (alamat dari instruksi yang sedang berjalan) disimpan ke stack
Interrupt Status disimpan secara internal
Interrupt dilayani sesuai peringkat dari interrupt (lihat Interrupt Priority)
Program Counter terisi dengan alamat dari vector interrupt (lihat Interrupt Vector) sehingga mikrokontroler langsung menjalankan program yang terletak pada vector interrupt
Program pada vector interrupt biasanya diakhiri dengan instruksi RETI di mana pada saat ini proses yang terjadi pada mikrokontroler adalah sebagai berikut:
Program Counter diisi dengan alamat yang tersimpan dalam stack pada saat interrupt terjadi sehingga mikrokontroler kembali meneruskan
program di lokasi saat interrupt terjadi
Interrupt Status dikembalikan ke kondisi terakhir sebelum terjadi interrupt

Tidak ada komentar:

Posting Komentar