120 likes | 362 Views
INTERUPSI. Pengantar tentang proses eksekusi program. Instruksi-instruksi yang dieksekusi mikrokontroler diletakkan pada memori program
E N D
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
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)