About

Ahmad Edi Saputra

Wednesday, December 31, 2014

Akses Interupsi Eksternal AVR ATMega

Interrupt merupakan proses penyelaan proses kerja prosessor karena adanya routine yang harus di dahulukan. sebelum adanya interrupt, biasanya microprocessor akan terbebani dengan sistem polling, dimana prosessor akan memeriksa terlebih dahulu seluruh siklus rutin-rutin yang harus didahulukan. setelah adanya interrupt, seluruh proses polling dibebankan kepada hardware atau peripheral tambahan(pada AVR dan beberapa mikrokontroler) yang membutuhkan eksekusi segera. prosessor tetap menjalankan siklus secara normal tanpa memeriksa setiap routin yang membutuhkan interrupt, routine lah yang memberi informasi kepada processor bahwa routine tersebut membutuhkan prioritas eksekusi segera sehingga prosessor mengerjakan routine interrupt tersebut. setelah selesai prosesor akan mengerjakan program utama secara normal kembali.

Pada AVR ATMega32 terdiri dari interupt hardware(interrupt eksternal) dan interrupt software(polling virtual atau timer interrupt). Interrupt eksternal adalah pin eksternal yang dapat menginterrupt prosessor jika terjadi perubahan logika di pin tersebut. Interrupt ini akan dieksekusi prosessor sesuai dengan prioritas pada vektornya. Artinya, jika prosessor sedang mengeksekusi sebuah interrupt yang memiliki prioritas tinggi, maka prosessor tidak akan melayani permintaan interrupt yang memiliki prioritas lebih rendah. prioritas tertinggi berada pada nomor vektor terkecil

dari tabel diatas maka interrupsi tertinggi adalah interupsi reset.

Pin interupsi eksternal pada ATMega yaitu
1. INT0
2. INT1
3. INT2

untuk INT0 dan INT1, interupsi dapat disebabkan (dipicu) oleh rising edge(transisi logika naik, dari low menuju high) falling edge(transisi logika turun, dari high menuju low), maupun setiap terjadi perubahan logika pada pin tersebut. sedangkan untuk INT2 hanya falling dan rising edge.

berikut contoh pembuatan program interupsi eksternal dengan code wizard CVAVR
generate wizard tersebut maka akan muncul seperti beriku

ganti "//place your code here" dengan perintah yang ingin di jalankan setelah adanya interupsi. untuk lebih lengkapnya silahkan download contohnya disini

No comments :

Post a Comment