استفاده از وقفه خارجی در AVR

استفاده از وقفه در برنامه LED چشمک زن

در این پست با نحوه عملکرد وقفه در عمل آشنا خواهیم شد. پیشنهاد می کنیم قبل از خواندن ادامه این مقاله آموزش مربوط به وقفه را مطالعه نمایید.

در این پروژه LED متصل به پورت B در حال چشمک زدن دائمی می باشد، می خواهیم زمانی که وقفه اتفاق افتاد LED متصل به پورت A سه بار چشمک بزند.

وقفه در AVR

همانطور که در شماتیک مدار مشاهده می کنید از وقفه خارجی صفر، به وسیله کلید فشاری استفاده کرده ایم، کلید در وضعیت Pull-down قرار دارد، این بدان معنی است که در حالت عادی پایه مربوط به وقفه در وضعیت صفر قرار دارد و با فشردن کلید، حالت یک منطقی یا همان لبه ی بالا رونده بوجود می آید که باعث وقفه در برنامه LED چشمک زن معمولی می شود و به تابع وقفه صفر پرش می کند تا LED متصل به پورت B سه بار چشمک بزند.

#include <mega16a.h>
#include <delay.h>
int i=0;
interrupt [EXT_INT0] void ext_int0_isr(void)
    {
    for(i=0;i<3;i++)
    {
    PORTA.0=1;
    delay_ms(1000);
    PORTA.0=0;
    delay_ms(1000);
    }
    }
void main(void)
{
    PORTA.0=0;
    DDRA.0=1;
    PORTB.0=0;
    DDRB.0=1;
    GICR|=(0<<INT1) | (1<<INT0) | (0<<INT2);
    MCUCR=(0<<ISC11) | (0<<ISC10) | (1<<ISC01) | (1<<ISC00);
    GIFR=(0<<INTF1) | (1<<INTF0) | (0<<INTF2);
    #asm("sei")
    while (1)
     {
     PORTB.0=1;
     delay_ms(1000);
     PORTB.0=0;
     delay_ms(1000);
     }
}

خط ۴ تابع وقفه می باشد که در اینجا مربوط به وقفه خارجی صفر است: [EXT_INT0] ، در خط ۶ تا ۱۱ دستورات مربوط به تابع وقفه نوشته شده است که با استفاده از حلقه تکرار for با متغیر i دستور سه بار on و off شدن LED اجرا می شود.

در خطوط ۱۶ تا ۱۹ پایه های مربوط به LED ها را خروجی تعریف کرده ایم، که در قسمت while دستورات مربوط به LED چشمک زن ثابت (قرمز رنگ) را مشاهده می کنید.

خطوط ۲۰ تا ۲۳ مربوط به رجیسترهای وقفه است که به ترتیب برای فعال کردن وقفه خارجی صفر، تنظیم حساسیت آن وقفه به لبه بالا رونده و فعال کردن پرچم آن وقفه  می باشد، همچنین دستور اسمبلی sei برای فعال کرن وقفه کلی می باشد.

برای تنظیمات مربوط به وقفه در کدویژن، قسمت CodeWizard مطابق تصویر زیر عمل نمایید.

کدویژن

در قسمت Mode وقفه صفر، حالت Rising Edge یا همان لبه بالا رونده را انتخاب نموده ایم.

اطلاعات دانلود

  • حجم فایل: 44 کیلوبایت
  • فرمت:RAR

فیسبوک توییتر گوگل + لینکداین تلگرام واتس اپ کلوب

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *