سلام دوستان. نمیدونم چرا همیشه از این وقفه بدم میومد. فکر کنم این حس یادگار دوران Z80 باشه. 


به هر حال همچنان با وقفه ها مشکل دارم و تاجایی که بتونم سراغش نمیرم. حالا مشکل کجاست؟
مشکل: دارم روی یه برنامه*ای توی کدویژن کار میکنم که از وقفه*های صفر و یک استفاده میشه. با فعال شدن وقفه صفر تایمر شروع به شمارش میکنه و با فعال شدن وقفه یک تایمر از شمارش می ایسته. بعدش توی همون زیر روال وقفه یک، وقفه سراسری رو غیر فعال میکنم با دستور cli تا بتونم به بقیه محاسباتم بپردازم. بعد از اتمام محاسباتم، دوباره وقفه سراسری رو با دستور sei فعال میکنم. مشکل اینجاست که وقفه سراسری تحت هیچ شرایطی در این برنامه غیر فعال نمیشه و همیشه محاسباتم نیمه تموم رها میشه چون وقفه بعدی رسیده. حالا اگه تجربه مشابه ای دارید یا راه حل مشکل منو میدونید لطفا کمک کنید که بدجوری دارم از این وقفه متنفر میشم

ثباتهای وقفه مثل GICR و GIFR و MCUCR رو هم بطور همزمان صفر کردم اما باز هم غیر فعال نمیشه.



به هر حال همچنان با وقفه ها مشکل دارم و تاجایی که بتونم سراغش نمیرم. حالا مشکل کجاست؟
مشکل: دارم روی یه برنامه*ای توی کدویژن کار میکنم که از وقفه*های صفر و یک استفاده میشه. با فعال شدن وقفه صفر تایمر شروع به شمارش میکنه و با فعال شدن وقفه یک تایمر از شمارش می ایسته. بعدش توی همون زیر روال وقفه یک، وقفه سراسری رو غیر فعال میکنم با دستور cli تا بتونم به بقیه محاسباتم بپردازم. بعد از اتمام محاسباتم، دوباره وقفه سراسری رو با دستور sei فعال میکنم. مشکل اینجاست که وقفه سراسری تحت هیچ شرایطی در این برنامه غیر فعال نمیشه و همیشه محاسباتم نیمه تموم رها میشه چون وقفه بعدی رسیده. حالا اگه تجربه مشابه ای دارید یا راه حل مشکل منو میدونید لطفا کمک کنید که بدجوری دارم از این وقفه متنفر میشم


ثباتهای وقفه مثل GICR و GIFR و MCUCR رو هم بطور همزمان صفر کردم اما باز هم غیر فعال نمیشه.
دیدگاه