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
8 komentar:
mau tanya gan...kalo mau buat timer dengan waktu real time,,selain pake interupt bisa pake apa y???
mksh sebelumnya...
mantap, dpet infrmasi baru....
Makasih gan dapat membantu
wah gan..ini bisa membantu tugas saya
mas kalau flow chart pop up di web atau android itu gimana ya mas ?
Terimakasih sebelumnya, tapi saya mendadak kecewa dengan font warna kuning berlatar putih.. :( yg mas tulis itu... seriously?? Sakit mata saya mas... mas..
sangat bagus
siap min
solder uap
Posting Komentar
1. "Blog ini Do Follow, silakan post untuk mendapatkan Backlink"
2. "Anda Follow, pasti saya Followback"
3. "Kalau mau Copy-Paste artikel boleh saja, tapi sumbernya ke blog ini"
4. "Terima Kasih Lagi . . . !!!"
Komentar Anda Sangat Kami Harapkan Untuk Kemajuan Blog Ini. isikan komentar anda disini !