تبلیغات
اطلاعاتی مختصر در مورد مهندسی برق - معرفی وقفه در میکرو کنترلر هایavr
 
اطلاعاتی مختصر در مورد مهندسی برق
درباره وبلاگ



مدیر وبلاگ : بهزاد عبدالرضایی
آمار وبلاگ
  • کل بازدید :
  • بازدید امروز :
  • بازدید دیروز :
  • بازدید این ماه :
  • بازدید ماه قبل :
  • تعداد نویسندگان :
  • تعداد کل پست ها :
  • آخرین بازدید :
  • آخرین بروز رسانی :
خب بعد از اشنایی کلی با میکروی avr نوبت میرسه به اینکه بخوایم وارد جزییات شیم
خب اول میریم به سراغ  وقفه
اینکه ببینیم اصلا وقفه چی هست؟

اگه کلمه interrupt رو داخل دیکشنری معادل فارسیشو ببینید با عباراتی نظیر :

قطع کردن،گسیختن،کلام کسی را قطع کردن،منقطع کردن و ...   روبرو خواهید شد


اما در مورد میکرو وقفه مکانیزمی است که میکرو کنترلر رو برای پاسخگویی به وقایع لحظه ای فعال میکند
 روش کارش هم اینطوریه که هنگام بروز وقفه cpu دستوری که در حال اجرا هست رو تموم میکنه 
و ادرس دستور بعدی رو در فضایی به نام حافظه پشته که قسمتی از فضای SRAM هستش ذخیره میکنه.
وقتی وقفه رخ میده ادرسی در رجیستر PROGRAM COUNTER قرار میگیره که بهش بردار وقفه میگن
که این ادرس در PCهمون ادرس سرویس وقفه(ISR) هستش سپس به ادرس وقفه پرش میکنه
حالا وقتشه که برنامه وقفه اجرا بشه که میشه!
بعدشم که ادرسی که در STACK یا پشته دخیره کرده بود رو برداشته و ادامه برنامه رو از سر میگیره
 کلی بگیم:

پس از آنکه میکروکنترلر درخواست وقفه را دریافت کرد مراحل زیر انجام میشود :

1.به دستوری که در حال اجرای آن باشد پایان میدهد و آدرس دستورالعمل بعدی را در فضایی به نام پُشته (Stack) ذخیره میکند.

2.به جدول بردار وقفه مراجعه میکند،آدرس سرویس وقفه (ISR) را پیدا میکند،به آدرس بدست آمده پرش میکند.

3.زیربرنامه وقفه رو اجرا میکند.

4.آدرسی را که در پشته ذخیره کرده بود را برداشته و اجرای ادامه برنامه را از سر میگیرد.


دیاگرام پایین هم همین موضوع رو میگه


بعد از گذشت از نحوه کارش به چرایی و فلسفه ماجرا میرسیم!

فلسفه وجودی واحد وقفه چیست؟؟

خب جواب  اینه که پردازنده ها برای اطلاع از رویداد های داخلی و خارجی دو روش دارند:

 روش اول: سرکشی یا POLLING:

 در این  روش هنگام برنامه نویسی بازه های زمانی مشخصی رو برای پردازنده تعیین میکنیم که مثلا هر چند میکرو ثانیه واحد مورد نظر رو چک کنه ببینه اتفاق مورد نظر افتاده یا نه؟؟که معمولا هم نیافتاده

مثلا هر چند میرو ثانیه کیبورد رو سرکشی کنه ببینه ایا کلیدی زده شده یا نه؟

خب این باعث اتلاف وقت پردازنده ما میشه.این روش برا برنامه های کوچولو و 10 خطی یا همین حدود جواب میده

اما برای برنامه های گسترده و بزرگ جواب نمیده اگه هم بده پردازنده رو داغون میکنه هم مصرف بیشتر هم گرمای بیشتر و...


روش دوم: وقفه یا INTERRUPT:

در این روش به میکرو میگیم شما مشغول کار خودت باش هر وقت موقعش رسید و اتفاقی افتاد بهت میگیم..


مثلا برق رفته و شما منتظر اومدن کسی هستی 

طبق راه اول باید هر 20 ثانیه بیای دم در ببینی کسی هست یا نه...که خودتون میدونید چطوریه..=پارگی

اما طبق راه دوم یه زنگوله میذارین دم در (با توجه به اینکه برق قطعه و ایفون هم...)طرف هر وقت خودش اومد شما میفهمی و موقتا در کار های اصلی خودت وقفه میندازی...


امیدوارم ک لپ کلامو فهمیده باشید.





نوع مطلب :
برچسب ها :
لینک های مرتبط :

       نظرات
پنجشنبه 22 تیر 1396
بهزاد عبدالرضایی
شنبه 14 مرداد 1396 03:47 ب.ظ
Thanks a bunch for sharing this with all of us you really recognize what you
are speaking about! Bookmarked. Please also seek advice from my
web site =). We may have a link alternate arrangement among us
جمعه 13 مرداد 1396 11:31 ب.ظ
If some one wishes expert view concerning blogging afterward i suggest him/her to
pay a visit this webpage, Keep up the nice job.
جمعه 23 تیر 1396 09:32 ب.ظ
ســــلام !
وبلاگتون زیباست!
موفق باشید
 
لبخندناراحتچشمک
نیشخندبغلسوال
قلبخجالتزبان
ماچتعجبعصبانی
عینکشیطانگریه
خندهقهقههخداحافظ
سبزقهرهورا
دستگلتفکر