Thursday, May 15, 2014

Interupsi pada Mikrokontroler AVR

Interupsi

 

Interupsi pada dasarnya adalah suatu event yang memerlukan perhatian secara segera dari sebuah mikrokontroler. Ketika ada sebuah event interupsi maka mikrokontroler akan segera menghentikan sementara program utamanya dan segera menjalankan perintah yang ada pada  Interrupt Service Routine (ISR) dan akan kembali menjalakan program utamanya.
Agar mikrokontroler untuk menanggapi suatu event interupsi, fitur interupsi dari mikrokontroler harus diaktifkan bersama dengan interrupt tertentu. Hal ini dilakukan dengan menetapkan Global Interrupt Enabled bit dan Interrupt Enable bit dari register mikrokontroler.

Interrupt Service Routine (ISR) adalah bagian dari program yang harus mengeksekusi ketika interupsi dipicu. Biasanya setiap interrupt diaktifkan memiliki ISR sendiri. 

Interrupt Flags and Enabled bits Setiap interrupt dikaitkan dengan dua (2) bit, sebuah Interrupt Flag Bit dan Interrupt Enable Bit. Bit ini terletak di I / O register yang terkait dengan interrupt tertentu:
  • Interrupt Flag bit diatur setiap kali event interrupt terjadi.
  • Interrupt Enable bit digunakan untuk mengaktifkan atau menonaktifkan interupsi tertentu. Pada dasarnya ini memberitahu mikrokontroler apakah atau tidak seharusnya menanggapi interupsi jika dipicu.  
Kesimpulannya, pada dasarnya Interupt Flag dan Interupt Enable diperlukan untuk setiap kali ada permintaan event interupt dan dapat digambarkan seperti gambar berikut:

 

Global Interrupt Enabled Bit
Terlepas dari bit yang harus diaktifkan untuk spesifik interupsi, Global Interrupt Enabled Bit HARUS diaktifkan untuk mengaktifkan fitur interupsi dalam microcontoller tersebut.
Untuk AVR 8-bit mikrokontroler bit ini terletak di Status I / O Register (SREG). Global Interrupt Enable adalah bit ke- 7, I-bit dalam register SREG.
AVR Microcontroller SREG 

Sumber interupsi  
 Sumber interupsi yang disediakan oleh AVR mikrokontroler ada 4 yaitu:
  1. RESET interrupt - dipicu dari pin 9.
  2. External Interrupt 0 (INT0) -  dipicu dari pin 16.
  3. External Interrupt 1 (INT1) -  dipicu dari pin 17.
  4. External Interrupt 2 (INT2) -  dipicu dari pin 3.
AVR Microcontroller External Interrupt Pins
    
 


0 comments:

Post a Comment