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