سلام
یه مسئله عجیب در خصوص تایمر و وقفه تایمر پیش اومده امیدوارم دوستان همراهی کنن
یه برنامه نوشتم هر 0.5 ثانیه یه وقفه تولید میکنه . تو روال وقفه وضعیت یه پایه میکرو toggle میشه و البته پرچم وقفه رو نیز با یک کردن پاک میکنم . . .
حالا اومدم بعد از 5 ثانیه ( یه تاخیر 5 ثانیه ای در حلقه while ) تایمر رو غیر فعال کردم ( رجیستر TCR ) که برنامه به درستی عمل میکنه و مشکلی نیست
مشکل از جایی شروع میشه که در روال وقفه پرچم وقفه رو دیگه پاک نکردم ( تا مدام روال وقفه اجرا بشه ) حالا دیگه نمیشه تایمر رو غیر فعال کرد !!!
یعنی اگه تو روال وقفه پرچم مربوطه رو با یک کردن پاک نکنی اگه یه وقت خواستی تایمر رو غیر فعال کنی نمیتونی !!!
این مسئله رو بارها تکرار کردم . . .
دوستانی که اطلاع دارن به نظرتون چرا اینطوریه و آیا این مسئله طبیعی هست ؟؟؟
آیا غیر فعال کردن یه تایمر ( در صورتی که وقفه وجود داشته باشه ) به پاک شدن پرچم وقفه در روال تایمر مرتبط هست ؟؟؟
یه مسئله عجیب در خصوص تایمر و وقفه تایمر پیش اومده امیدوارم دوستان همراهی کنن
یه برنامه نوشتم هر 0.5 ثانیه یه وقفه تولید میکنه . تو روال وقفه وضعیت یه پایه میکرو toggle میشه و البته پرچم وقفه رو نیز با یک کردن پاک میکنم . . .
حالا اومدم بعد از 5 ثانیه ( یه تاخیر 5 ثانیه ای در حلقه while ) تایمر رو غیر فعال کردم ( رجیستر TCR ) که برنامه به درستی عمل میکنه و مشکلی نیست
مشکل از جایی شروع میشه که در روال وقفه پرچم وقفه رو دیگه پاک نکردم ( تا مدام روال وقفه اجرا بشه ) حالا دیگه نمیشه تایمر رو غیر فعال کرد !!!
یعنی اگه تو روال وقفه پرچم مربوطه رو با یک کردن پاک نکنی اگه یه وقت خواستی تایمر رو غیر فعال کنی نمیتونی !!!
این مسئله رو بارها تکرار کردم . . .
دوستانی که اطلاع دارن به نظرتون چرا اینطوریه و آیا این مسئله طبیعی هست ؟؟؟
آیا غیر فعال کردن یه تایمر ( در صورتی که وقفه وجود داشته باشه ) به پاک شدن پرچم وقفه در روال تایمر مرتبط هست ؟؟؟
دیدگاه