سلام آقا مجید
شما از دست من خلاضی نداری همه جا من هستم :mrgreen: :mrgreen:
اینها اولویت نیستند اینها آدرس اسمبلی محل ذخیره شدن سرویس روتین های وقفه در حافظه فلش میکرو هستند یعنی معادل 0و1 توابع وقفه در این آدرس از فلش ذخیره میشوند
سلام همان طوری که شما اشاره کرده اید این ها ادرس سخت افزاری وقفه ها هستند حالا اینکه اولویت یعنی چه منظور این است که اگر دو وقفه همزمان رخ دهد وقفه ای زود تر سرکشی واجرا میشود که ادرسش کوچکتر است.
دنیا را چه سکوتی فرا می گرفت اگر هر کس به انداره
عملش حرف می زد.(امام علی ع)
خواهش میکنم علی اقا این از بزرگواریتونه که وقتتونو میزارین رو سوالای بنده
حالا اینکه اولویت یعنی چه منظور این است که اگر دو وقفه همزمان رخ دهد وقفه ای زود تر سرکشی واجرا میشود که ادرسش کوچکتر است.
سوالمو فکر کنم بد پرسیدم منظورم اینکه اولویتهای وقفه ها از قبل مشخصه درسته؟ (طبق همین جدول)
حالا اگه بخوایم اولویتهای وقفه ها رو جابجا کنیم یعی کدوم وقفه زودتر اتفاق بیوفته چیه کاری باید کرد؟(صر فنظر از اون ادرساشون)
سلام، معماری وقفه ها در AVR چند سطحی نیست و امکان جابجا کردن اولویت وقفه ها وجود نداره. اما می تونید خودتون با روش های نرم افزاری یه کارایی بکنید :job:
There is nothing so practical as a good theory. — Kurt Lewin, 1951
میشه این روش نرو افزاریشو بیشتر توضیح بدین ممنون می شم
در ضمن یه سوال دیگه هم داشتم : اگه دو تا وقفه همزمان اتفاق بیوفته میکرو سراغ اونی میره که اولویتش بیشتره درسته؟
یا مثلا میکرو داره زیر روال یه وقفه ایی رو اجرا میکنه . یه وقفه ایی صورت میگیره که نصبت به این وقفه اولی اولویتش بیشتر میکرو میره سراغ اون وقفه؟؟؟
پس تکلیف این وقفه ایی که میکرو داشته زیر روال برنامشو اجرا میکرده چی میشه؟(شاید پس از تموم شدن اون وقفه دومی میاد دوباره ادامه این وقفه رو انجام میده)؟؟؟
پس تکلیف این وقفه ایی که میکرو داشته زیر روال برنامشو اجرا میکرده چی میشه؟
اجرای وقفه ها درست مثل چند تا پرانتزی هست که درون هم باز شدن .. توی معماری کامپوتر از وقفه ها تعبیری میشه تحت عنوان Hierarchical Operation یعنی اجرا به صورت سلسله مراتبی .. پس نگران این قضیه نباشید چرا که قبلا تضمین شده .. موفق باشید ..
میشه این روش نرو افزاریشو بیشتر توضیح بدین ممنون می شم
در ضمن یه سوال دیگه هم داشتم : اگه دو تا وقفه همزمان اتفاق بیوفته میکرو سراغ اونی میره که اولویتش بیشتره درسته؟
یا مثلا میکرو داره زیر روال یه وقفه ایی رو اجرا میکنه . یه وقفه ایی صورت میگیره که نصبت به این وقفه اولی اولویتش بیشتر میکرو میره سراغ اون وقفه؟؟؟
پس تکلیف این وقفه ایی که میکرو داشته زیر روال برنامشو اجرا میکرده چی میشه؟(شاید پس از تموم شدن اون وقفه دومی میاد دوباره ادامه این وقفه رو انجام میده)؟؟؟
دوست من دقت که وقتی میکرو داره یه زیر روال را اجرا میکنه بیت I را بصورت سخت افزاری صفر میکنه یعنی هیچ وقفه ای را نمیپذیره
اجرای وقفه ها درست مثل چند تا پرانتزی هست که درون هم باز شدن .. توی معماری کامپوتر از وقفه ها تعبیری میشه تحت عنوان Hierarchical Operation یعنی اجرا به صورت سلسله مراتبی .. پس نگران این قضیه نباشید چرا که قبلا تضمین شده
سلام اقا حسام ممنون از پاسختون (علی اقا از شما هم ممنونم)...
جناب پارس یار یه مطلبی رو فرمودند:
اما می تونید خودتون با روش های نرم افزاری یه کارایی بکنید
با اجازه استاد سپاس یار
ببین آقا مجید فکر کنم منظور جناب سپاس یار استفاده از بیت های اختصاصی وقفه باشه به این صورت که بیاین و در حین برنامه بیت اختصاصی که مربوط به وقفه مورد نیاز است 1 کنید و بقیه بیتهای اختصاصی مربوط به وقفه های دیگر را صفر کنید تا فقط همون وقفه مورد نظر پذیرفته شود البته این نظز بنده حقیر است
با اجازه استاد سپاس یار
ببین آقا مجید فکر کنم منظور جناب سپاس یار استفاده از بیت های اختصاصی وقفه باشه به این صورت که بیاین و در حین برنامه بیت اختصاصی که مربوط به وقفه مورد نیاز است 1 کنید و بقیه بیتهای اختصاصی مربوط به وقفه های دیگر را صفر کنید تا فقط همون وقفه مورد نظر پذیرفته شود البته این نظز بنده حقیر است
سلام،
ببخشید که دیر پاسخ میدم. منظور من همین شیوه ای بود که دوستمون فرمودند. مثلا فرض کنید در ISR سرریز تایمر هستید و می خواهید در این حین اگر وقفه ی دریافت پورت سریال درخواست شد بتونید ISR مربوط به اون رو اجرا کنید. به این ترتیب شما باید ابتدای ISR تایمر، ماسک تمام وقفه های دیگه (بجز وقفه ی دریافت پورت سریال) رو پاک کنید (یعنی وقفه ی اونها رو غیر فعال کنید) و سپس بیت I رو با دستور sei ست کنید. اکنون تنها وقفه ای که میتونه برنامه رو به یک ISR دیگه منشعب کنه وقفه ی دریافت پورت سریال است :smile:
There is nothing so practical as a good theory. — Kurt Lewin, 1951
دیدگاه