سلام
برنامه ای دارم که دارای 3 وقفه فعال هست با میکروکنترلر ATmega8A
2 وقفه خارجی و 1 وقفه سرریز تایمر
در حالت عادی کلیت برنامه و وقفه ها به خوبی کار میکنن و اگر نخوام وسواس به خرج بدم برنامه تموم شده حسابه ولی ...
بهتره در بخشی از برنامه وقفه 0 غیر فعال باشه تا دستگاه بهتر کار کنه
اما مشکل کجاست؟؟؟
من وقتی وقفه خاری 1 رو هر جای برنامه غیر فعال و یا فعال کنم به خوبی عمل میکنه و این برای وقفه سرریز تایمر هم صدق میکنه
اما این رویه برای وقفه شماره 0 اصلا کار نمیکنه
یعنی اگر اول برنامه و تو تابع main فعال کردم دیگه تا ابد کار میکنه و هر چی دستور GICR |=(0<<INT0): بنویسم هیچی به هیچی
نمیشه وقفه ها رو کلی غیر فعال کرد به هی عنوان
فقط موندم چرا این وقفه غیر فعال نمیشه اصلا
میتونم با کد نویسی و گذاشتن یه متغر فلگ دستورات تابعش رو اجرا کنم یا نکنم اما همینکه وقفه اتفاق میوفته بده
ممکنه از میکروکنترلر باشه؟؟؟؟
برنامه ای دارم که دارای 3 وقفه فعال هست با میکروکنترلر ATmega8A
2 وقفه خارجی و 1 وقفه سرریز تایمر
در حالت عادی کلیت برنامه و وقفه ها به خوبی کار میکنن و اگر نخوام وسواس به خرج بدم برنامه تموم شده حسابه ولی ...
بهتره در بخشی از برنامه وقفه 0 غیر فعال باشه تا دستگاه بهتر کار کنه
اما مشکل کجاست؟؟؟
من وقتی وقفه خاری 1 رو هر جای برنامه غیر فعال و یا فعال کنم به خوبی عمل میکنه و این برای وقفه سرریز تایمر هم صدق میکنه
اما این رویه برای وقفه شماره 0 اصلا کار نمیکنه
یعنی اگر اول برنامه و تو تابع main فعال کردم دیگه تا ابد کار میکنه و هر چی دستور GICR |=(0<<INT0): بنویسم هیچی به هیچی
نمیشه وقفه ها رو کلی غیر فعال کرد به هی عنوان
فقط موندم چرا این وقفه غیر فعال نمیشه اصلا
میتونم با کد نویسی و گذاشتن یه متغر فلگ دستورات تابعش رو اجرا کنم یا نکنم اما همینکه وقفه اتفاق میوفته بده
ممکنه از میکروکنترلر باشه؟؟؟؟
دیدگاه