INTERUPSI
Pengantar tentang proses eksekusi program Instruksi-instruksi yang dieksekusi mikrokontroler diletakkan pada memori program Secara default, CPU akan mengeksekusi instruksi-instruksi mulai dari alamat 0x0000 kemudian diteruskan ke alamat 0x0001 dst secara berurutan. Pengalamatan instruksi diatur oleh progam counter Jika terjadi suatu lompatan (percabangan,pemanggilan subrutin, atau loop) eksekusi program akan keluar dari urutan alamat tersebut dan menuju alamat tujuan lompatan
Pengertian Interupsi Kondisi yang membuat suatu komputer/mikroprosesor berhenti mengerjakan rutin utama dan beralih(melompat ke vektor interupsi) untuk mengerjakan rutin interupsi
Pengertian Interupsi
Vektor interupsi Alamat memori program yang menjadi tujuan pertama lompatan program ketika terjadi suatu interupsi Vektor interupsi ini sifatnya spesifik dan sudah fix untuk masing-masing sumber interupsi Setiap sumber interupsi memiliki vektor interupsinya sendiri-sendiri
Sumber interupsi Kondisi yang menyebabkan terjadinya suatu interupsi Kondisi ini bermacam-macam, ada yang berasal dari luar (ext. interrupt) dan ada yang berasal dari dalam Sumber dan vektor interupsinya ditunjukkan pada tabel sbb
Inisialisasi interupsi Untuk dapat menggunakan fasilitas interupsi, harus dilakukan inisialisasi pada awal program Inisialisasi digunakan untuk mengaktifkan interupsi Inisialisasi mencakup : Enable sumber interupsi yang diinginkan Enable interupsi global
Rutin interupsi Rutin yang dikerjakan ketika terjadi interupsi Rutin ini bisa terletak pada alamat vektor interupsi atau bisa diletakkan pada alamat lain Umumnya pada teknik pemrograman,pada alamat vektor interupsi diberi instruksi untuk lompat ke alamat rutin interupsi Suatu rutin interupsi harus diakhiri dengan perintah RETI (return from interrupt)
Interupsi Eksternal 3 sumber interupsi eksternal pada atmega8535 : INT0(PD2),INT1(PD3),INT2(PB2) Kondisi eksternal yang menyebabkan interupsi bisa diatur melalui register MCUCR (silakan lihat datasheet ATmega8535 hal 68) dan MCUCSR(hal 69)
Register enable interupsi eksternal Suatu bit pada register ini harus diset supaya interupsi bisa di-enable Terletak pada register GICR (datasheet hal 69) Bit-bit yang dipengaruhi ketika terjadi interupsi ada pada GIFR – general interrupt flag register (hal 70)