اطلاعیه

Collapse
No announcement yet.

مشکل در نحوه اولویت دهی وقفه ها

Collapse
این موضوع بسته شده است.
X
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    مشکل در نحوه اولویت دهی وقفه ها

    سلام ... مندو تا وقفه دارم ...که یکیش مربوط به تایمر هستش . من میخوام هر وقت تایمرم سرریز شد و وقفه مربوط به اون اومد ، بلادرنگ پروسسور به وقفه مربوط به تایمر بره و کارهای داخل اون را انجام بده . اما در حال حاضر وقفه تایمر من نمیتونه اون یکی وقفه را قطع کنه . برای حل این مشکل ، از هلپ نرم افزار ccs دیدم که موقع تعریف وقفه باید کلمه fast را بنویسیم ... من هم مینویسم . اینطوری : #INT_TIMER0 FAST . در ضمن این را هم نوشته ام : #device high_ints=true... اما وقتی دیدم اینها درست کار نمیکنند ، خودم اومدم رجیستر ها را مقدار دهی کنم
    برای این کار ابتدا ، بیت ipen را در رجیستر RCON یک کردم ، تااولویت بندی وقفه ها فعال بشه ... بعدش بیت TMR0IP در رجیسترINTCON2 را یک کردم ، تا وقفه تایمرم ، بصورت وقفه سریع قرار بگیرد ... اما همه اینها فایده ای نداشت و از شکل موج خروجی ام پیداست که وقفه تایمرم ، وقفه ی دریافت اطلاعات یوزآرتم را قطع نمیکند
    دلا خوبـــان دل خونيــــن پســـندند
    دلا خون شو که خوبان اين پسندند
    متاع کفر و دين بيآ‌مشتري نيست
    گروهــــي آن گروهي اين پســـندند

    #2
    پاسخ : مشکل در نحوه اولویت دهی وقفه ها

    با سلام
    دوست عزیز اگه امکانش هست برنامه رو بزارین تا بهتر کمکتون کنیم. درضمن اگه درست متوجه شده باشم شما وفقه رو در داخل وقفه تعریف کردین, من یه بار تو یه سایتی خودم که تا زمانی که یک وقفه تموم نشه نمیتونیم از وقفه دیگه استفاده کنیم! البته من خودم تست نکردم ببینم که چقدر این موضوع درسته!

    باتشکر

    دیدگاه


      #3
      پاسخ : مشکل در نحوه اولویت دهی وقفه ها

      سلام

      تو پیک بیسیک پرو که اینجوری وقتی شما وارد روتین یه وقفه میشید اول باید تمام وقفه ها رو غیر فعال کنید و بعد که کارتون تموم شد دوباره تموم وقفه ها رو فعال کنید

      دیدگاه

      لطفا صبر کنید...
      X