میدونیم که برنامه ای که ما به یک میکرو کنترلر
میدیم تو حافظه
flash میکرو ذخیره میشه. موقع
اجرا هم میکرو از خط اول
flash شروع میکنه به خوندن
دستورا و به ترتیب اجراشون میکنه. ولی خیلی وقتا ما دوست نداریم دستورات دقیقا طبق
یک نظم خاصی و به ترتیب اجرا بشن. مثلا میخوایم وقتی که یک کلید رو زدیم یک سری
کارا انجام بشه. اینجور وقتا میتونیم از
external interrupt (وقفه خارجی) استفاده کنیم.

تو Atmega16 سه پین INT0, INT1, INT2 برای راه اندازی external
interrupt
به کار میروند. که INT0,
INT1
برای فعال شدن نیاز به کلاک IO دارن (به صورت سنکرون کار میکنن) و میتونن با
لبه (بالارونده یا پایین رونده) کلاک و یا سطح منطقی صفر فعال بشن. اما
INT2 فقط با لبه فعال
میشه و به صورت آسنکرون کار میکنه.

با استفاده از wizard برنامه codevision خیلی راحت میشه یکی از وقفه ها رو
انتخاب کرد (مثلا
INT2) و بعد هم با یک برنامه
ساده و اعمال پالس مناسب به پین
interrupt این قابلیت میکرو رو چک
کرد!

Advertisements